今天把string的建構函式、析構函式和賦值函式編寫複習了一下,先把**儲存一下,以備以後需要複習的時候。
#include #include class string
;string::string(const char *str)
else }
string::string(const string &other)
string::~string()
string & string::operator =(const string &other)
int length = strlen(other.m_data);
m_data = new char[length+1];
if(m_data != null)
strcpy(m_data,other.m_data);
return *this;
}void main()
執行結果:
ps:實現建構函式就是根據傳入的字串的長度申請一段記憶體空間,儲存這個傳入的字串的值,當字串為空時,字串長度為1,內容為'\0';
賦值運算子注意點:
1.首先應該判斷是不是物件自身複製,如果是則直接返回當前物件;
2.在申請記憶體空間時應釋放原有的指標所指向的記憶體,並且讓它置為null,這個以便在重新申請記憶體後可以判斷是否申請成功;
3.需要返回物件的引用(return *this;).
編寫類String的建構函式 析構函式和賦值函式
編寫類string的建構函式 析構函式和賦值函式,已知類string的原型為 class string public string const char str null 普通建構函式 string const string other 拷貝建構函式 string void 析構函式 string ...
編寫類String的建構函式 析構函式和賦值函式
已知類string的原型為 classstring 請編寫string的上述4個函式 普通建構函式 string string const char str else string的析構函式 string string void 拷貝建構函式 string string conststring ot...
編寫類String的建構函式 析構函式和賦值函式
01.include 02.include 03.04.05.06.char strcopy char pdest,const char psrc 07.18.pdest null 19.return ptmp 20.21.22.int strlength const char str 23.30....