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

2021-05-28 16:18:05 字數 1399 閱讀 8085

編寫類string的建構函式、析構函式和賦值函式,已知類string的原型為:

class string

public:     

string(const char *str = null); // 普通建構函式   

string(const string &other); // 拷貝建構函式  

~ string(void); // 析構函式

string & operate =(const string &other); // 賦值函式     

private:    

char *m_data; // 用於儲存字串     

解答://普通建構函式

string::string(const char *str)

if(str==null)

m_data = new char[1]; // 得分點:對空字串自動申請存放結束標誌'\0'的空

//加分點:對m_data加null 判斷

*m_data = '\0';

else

int length = strlen(str);

m_data = new char[length+1]; // 若能加 null 判斷則更好

strcpy(m_data, str);

// string的析構函式

string::~string(void)

delete m_data; // 或delete m_data;

//拷貝建構函式

string::string(const string &other)    // 得分點:輸入引數為const型

int length = strlen(other.m_data);

m_data = new char[length+1];     //加分點:對m_data加null 判斷

strcpy(m_data, other.m_data);   

//賦值函式

string & string::operate =(const string &other) // 得分點:輸入引數為const型

if(this == &other)                    //得分點:檢查自賦值

return *this;  

delete m_data;                //得分點:釋放原有的記憶體資源

int length = strlen( other.m_data );     

m_data = new char[length+1];  //加分點:對m_data加null 判斷

strcpy( m_data, other.m_data );  

return *this;             //得分點:返回本物件的引用

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

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

編寫類string的建構函式 析構函式和賦值函式,已知類string的原型為 class string public string const char str null 普通建構函式 string const string other 拷貝建構函式 string void 析構函式 string ...