c++ 手寫string 類

類的基本函數

  • 默認構造函數
  • 基本構造函數
  • 拷貝構造函數
  • 賦值操作符
  • 析構函數
Class Mystring
{
	public:
				//Mystring(void);
				Mystring(const char* str = NULL);
				Mystring(const Mystring& str);
				Mystring&  operator = (const Mystring& str);
				~Mystring(void); 
	private:
				char* str_data;	
}
Mysring :: Mystring(const char* str)
{
	if(str == NULL)
	{
		str_data = new char[1];
		str_data[0] = '\0' ;
	}
	else
	{
			str_data = new char[strlen(str)+1];
			strcpy(str_data,str);//strcoy 會自動在後面加'\0'
	}
}
Mystring :: Mystring(const Mystring& str)
{
	str_data = new char[strlen(str.str-data)+1];
	strcpy(str_data,str.str_data);
}

Mystring& Mystring:: operator = (const Mystring& str)
{
		if(this == other)
		{
			return *this;
		}
		
		delete str_data;
		str_data = new char[strlen(str.str_data)+1]  ;
		strcpy(str_data,str.str_data);
		return *this;
}
Mystring::~Mystring()
{
	if(str_data!=NULL)
	{
		delete str_data;
		str_data = NULL;
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章