本文共 986 字,大约阅读时间需要 3 分钟。
class String {public: String(const char *str=NULL);//构造函数 String(const String &other);//拷贝构造函数 ~String(void);//析构函数 String& operator=(const String &other);//等号操作符重载 ShowString();private: char *m_data;//指针};String::~String(){ delete[] m_data;//析构函数,释放地址空间}String::String(const char *str){ if (str==NULL)//当初始化串不存在的时候,为m_data申请 { m_data = new char[1]; *m_data='\0'; }else { int length = strlen(str); m_data = new char[length+1]; strcpy(m_data,str); }}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::operator=(const String &other){ if (this==&other) { return *this; } delete []m_data; int length = strlen(other.m_data); m_data=new char[length+1]; strlen(m_data,other.m_data); return *this;}
注意:
1.拷贝构造函数和等号操作符重载函数参数用“&”表示深拷贝。深拷贝和浅拷贝也是一个重要的知识点.转载地址:http://ahlum.baihongyu.com/