永发信息网

类 有默认拷贝构造函数及默认的赋值函数吗

答案:2  悬赏:0  手机版
解决时间 2021-03-23 11:06
  • 提问者网友:浪荡绅士
  • 2021-03-23 04:08
类 有默认拷贝构造函数及默认的赋值函数吗
最佳答案
  • 五星知识达人网友:不如潦草
  • 2021-03-23 04:41
如果没有显式定义拷贝构造函数,则编译系统会自动提供一个默认的拷贝构造函数,但其作用只是简单地复制类中每个数据成员,赋值函数不清楚。
全部回答
  • 1楼网友:woshuo
  • 2021-03-23 05:42
默认构造函数 string::string() { m_data = new char[1]; *m_data = '\0'; } 自定义构造函数 string::string(const char *str) { if(null ==str ) { m_data = new char[1]; *m_data = '\0'; } else { ilen = strlen(str); m_data = new char[ilen +1]; strcpy(m_data, str); } } 拷贝构造函数 string::string(const string &other) { int ilen = strlen(other.m_data); m_data = new char[ilen + 1]; strcpy(m_data, other.m_data); } 析构函数 string::~string() { delete []m_data; } 重载赋值运算符函数 string &string::operator=(const string &other) { if(this == &other)//自检查,防止自己赋值给自己 { return *this; } delete []m_data;//删除原来的内存资源 ilen = strlen(other.m_data); m_data = new char[ilen +1]; strcpy(m_data, other.m_data); return *this; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯