關於這一行:瞭解副本的基礎上寫
通過void setChar(size_t index, char c)
去的s[9]
,但什麼是*this
(裏面,如果在該行:``)?
是否s1
或nullptr
?那麼什麼是_str
(在同一行:*this = _str;
),它是s1
?
class MyString {
size_t _size = 0;
char* _str = nullptr;
int* _pRefCount = nullptr;
}
operator char() const {
return ((const MyString&)_s)[_index];
}
};
void detach() {
if(_pRefCount && --*_pRefCount == 0) {
delete []_str;
delete _pRefCount;
}
}
void attach(const MyString& str) {
_size = str._size;
_str = str._str;
_pRefCount = str._pRefCount;
++*_pRefCount;
而且當您使用調試器來遍歷代碼時,一次一行地檢查所有字符串的值變量和對象,你對你問的問題有什麼看法?你知道如何使用調試器自己回答這些簡單的問題,對嗎?因爲,衆所周知,知道如何使用調試器是每個C++開發人員必備的技能。 –
那麼「_str」怎麼樣? – tami
它在那裏,因爲它在那裏。你的問題不清楚。 –