已知 String 类定义如下:
1 class String 2 { 3 public: 4 //通用构造函数 5 String(const char* str = NULL); 6 //拷贝构造函数 7 String(const String& str); 8 //析构函数 9 ~String(); 10 //赋值函数 11 String& operator=(const String& str); 12 13 private: 14 char* m_data; //用于保存字符串 15 };
类的成员函数实现:
1 //通用构造函数 2 String::String(const char* str) 3 { 4 if(str == NULL) 5 { 6 m_data = new char[1]; 7 m_data[0] = '\0'; 8 } 9 else 10 { 11 m_data = new char[strlen(str) + 1]; 12 strcpy(m_data, str); 13 } 14 } 15 16 //拷贝构造函数 17 String::String(const String& str) 18 { 19 m_data = new char[strlen(str.m_data) + 1]; 20 strcpy(m_data, str.m_data); 21 } 22 23 //析构函数 24 String::~String() 25 { 26 delete [] m_data; 27 } 28 29 //赋值函数 30 String& String::operator=(const String& str) 31 { 32 if(this == &str) 33 { 34 return *this; 35 } 36 37 //删除原来的数据,新开一块内存 38 delete [] m_data; 39 40 m_data = new char[strlen(str.m_data) + 1]; 41 strcpy(m_data, str.m_data); 42 return *this; 43 }