C++ 构造函数、拷贝构造函数、赋值构造函数、析构函数定义

来源:互联网 发布:淘宝开店要不要钱 编辑:程序博客网 时间:2024/06/15 07:19

Evelyn

1809335179@qq.com


构造函数、拷贝构造函数、赋值构造函数、析构函数定义

类string为例:

class string{public:string(const char *str = NULL);//普通构造函数string(const string &other);//拷贝构造函数~string(void);//析构函数string & operator = (const String &other);//赋值函数private:char *m_data;//用来保存字符串};
string::string(const char*str){if (str == NULL) {       // 此处的判断m_data = new char[1];*m_data = '\0';}else {int len = strlen(str);m_data = new char[len + 1];strcpy(m_data,str);}}string::string(const string &other){int len = strlen(other.m_data);m_data = new char[len + 1];strcpy(m_data, other.m_data);}string& string:: operator=(const string &other) //{if (this==&other) //此处写法应注意  &return *this;if (m_data != NULL)delete[] m_data;int len = strlen(other.m_data);m_data = new char[len + 1];strcpy(m_data, other.m_data);return *this;       //此处写法应注意  返回本引用,不要忘记}string::~string(){if (m_data != NULL)delete[] m_data;}


string a;

string b=a;  //调用的是拷贝构造函数


string a;

string b;

b=a;//调用赋值构造函数



0 0
原创粉丝点击