string构造函数 析构函数

来源:互联网 发布:淘宝手机能开店吗 编辑:程序博客网 时间:2024/06/15 12:01
#include<iostream>using namespace std;class String{public:String(const char *str = NULL); //构造函数String(const String &other); //拷贝构造函数~String(void); //析构函数String& operator=(const String &other); //等号操作符重载void 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 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];strcpy(m_data, other.m_data);return *this;}void String::ShowString()//由于m_data是私有成员,对象只能通过public成员函数来访问;{cout << this->m_data << endl;}void main(){String AD;char * p = "ABCDE";String B(p);AD.ShowString();AD = B;AD.ShowString();}

阅读全文
0 0
原创粉丝点击