class String { public: String(const char *str=NULL);/// @brief 普通构造函数 String(const String &other);///@brief 拷贝构造函数 ~String(void);///@brief 析构 String &operate=(const String &other);/// @brief 赋值函数 private: char *m_data;/// @brief 字符串指针 }; String::String(const char* str) { if(NULL==str) { m_data=new char[1]; *m_data='\0';/// @brief 空字符串时,创建并赋值'\0' } else { int length = strlen(str); m_data = new char[length+1]; strcpy(m_data,str); } } String::~String(void) { delete[] m_data; } /// @brief 拷贝构造 String::String(const String &other) { int length = strlen(other.m_data); m_data = new char[length+1]; strcpy(m_data,other.m_data); } String &String::operate=(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); return *this; }
|
|