类string的构造函数、拷贝构造函数和析构函数 引用http://www.cppblog.com/life02/archive/2011/03/07/96085.html 在这个帖子的基础上稍微添加修改了点内容。String 类的原型如下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申请一个空间存放'\0'; { m_data=new char[1]; *m_data='\0'; } else//当初始化串存在的时候,为m_data申请同样大小的空间存放该串; { 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 [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 [length+1]; strcpy(m_data,other.m_data); return *this; }String::ShowString()//由于m_data是私有成员,对象只能通过public成员函数来访问;{ cout
无标题文章
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...