string的構造函數,析構函數和賦值函數

有意思

class String{
public:
	String(const char *str=NULL){//普通構造函數
		if(str==NULL){
			m_data=new char[1];
			m_data='\0';
		}
		else {
			int length=strlen(str);
			m_data=new char[length+1];
			strcpy(m_data,str);
		}
	};

	String(const String &other){//複製構造函數
		int length=strlen(other.m_data);
		m_data=new char[length+1];
		strcpy(m_data,other.m_data);
	};

	~String(void){//析構函數
		delete []m_data;
	};
	
	String& operator=(const String &other){//賦值函數
		if(this==other)
			return *this;
		delete []m_data;
		int length=strlen(other.m_data);
		m_data=new char[length+1];
		strcpy(m_data,other.m_data);
		
	};
private:
	char *m_data;//用於保存字符串
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章