C++:拷贝构造函数&赋值运算符的重载函数
拷贝构造函数 : 默认的拷贝构造函数 : 深拷贝&浅拷贝: 思考: 当对象中存在指针成员时,为什么需要自己实现拷贝构造函数?如果不,会出现怎样的问题? 看代码 : #include<iostream> class CGoods { public: CGoods(const char* name, double price, int amount)//带有三个参数的构造函数 { std::cout << this << " :CGoods::CGoods(char*,float,int)" << std::endl; mname = new char[strlen(name) + 1](); strcpy(mname, name); mprice = price; mamount = amount; } CGoods()//不带参数的构造函数 { std::cout << this << " :CGoods::CGoods()" << std::endl; mname = new char[1](); } private: char* mname; double mprice; int mamount; }; int main() { CGoods good1("car1", 10.1, 10); CGoods good2 = good1; return 0; } 程序运行结果: