本篇文章内容包含:c风格字符串原理,拷贝构造,拷贝赋值,内存分配,内存释放与析构函数,内存空间分类。
代码如下:
1 class SString 2 { 3 public: 4 SString(const char* p=0); 5 SString(const SString& str); 6 SString& operator=(const SString& str); 7 ~SString(){delete[] p_data;} 8 char* get_p_data() const {return p_data;} 9 10 private: 11 char* p_data; 12 }; 13 14 inline SString::SString(const char* p) 15 { 16 if(p) 17 { 18 p_data=new char[strlen(p)+1]; 19 strcpy(p_data,p); 20 } 21 else 22 { 23 p_data=new char[1]; 24 p_data[0]='