已知類string的原型為:
class string
類string的建構函式、析構函式和賦值函式的程式**如下:
#include using namespace std ;
class string
string::~string(void)
{ cout<<"destructing"<
(1) 普通建構函式:這裡判斷了傳入的引數是否為null。如果是null,初始化乙個位元組的空字串(包括結束符'\0');如果不是,分配足夠大小長度的堆記憶體來儲存字串。
(2)複製建構函式:只是分配足夠小長度的堆記憶體來儲存字串。
(3)析構函式:如果類私有成員m_string不為null,釋放m_string指向的堆記憶體,並且為了避免產生野指標,將m_string賦為null ;
(4)賦值函式:首先判斷當前物件與引用傳遞物件是否是同乙個物件,如果是,不作操作,直接返回;否則,先釋放當前物件的堆記憶體,然後分配足夠大小長度的堆記憶體複製字串。
程式的執行結果如下:
1 constructing
2 constructing
3 constructing copyion
4 operate = function
5 destructing
6 destructing
7 destructing
這裡的**第63~66行會發生建構函式以及賦值函式的呼叫,而析構函式的呼叫發生在main()函式退出時。
編寫類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....