class String { public: String(); ~String(); String(const char * data); String(const String & data); String(const String& data); String operator = (String & data); private: char *m_data; }; String::~String() { delete []m_data; } String::String() { m_data=new char[1]; m_data='\0'; } String::String(const char *data) { if(data==NULL) { m_data=new char[1]; *m_data='\0'; } else { m_data=new char[strlen(data) +1]; strcpy(m_data,data); } } String::String(const String& data) { m_data=new char[strlen(data.m_data)+1]; if(m_data==NULL) { cout<<"内存分配失败"<<endl; exit(1); } strcpy(m_data,data.m_data); } String & String::operator = (String & data) { if(this==&data) { return * this; } else { delete []m_data; m_data=new char[strlen(data.m_data)+1]; strcpy(m_data,data.m_data); return *this; } } |
|