編寫類string的建構函式 析構函式和賦值函式

2021-07-17 01:53:45 字數 731 閱讀 2825

#includeusing namespace std;

class string

;string::string(const char *str)

else }

string::string(const string &other)

string::~string(void)

}string & string::operator =(const string &other)

delete m_string;

m_string=new char[strlen(other.m_string)+1];

strcpy(m_string,other.m_string);

return *this;

}int main()

說明:(1)普通建構函式:這裡判斷了傳入的引數是否為null,如果是null,初始化乙個位元組的空字串(包括結束符'\0');如果不是,分配足夠大小長度的堆記憶體來儲存字串。

(2)複製構造:只是分配足夠小長度的堆記憶體來儲存字串。

(3)析構函式:如果類私有成員m_string不為null,釋放m_string指向的堆記憶體,並且為了避免產生野指標,將m_string賦值為null。

(4)賦值函式:首先判斷當前物件與引用傳遞物件是否是同乙個物件,如果是,不做操作,直接返回;否則,先釋放當前物件的堆記憶體,然後分配足夠大小長度的堆記憶體複製字串。

編寫類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....