#include using namespace std; class Box { private: double price; public: Box(double price) { this->price = price; } void show() { cout << "Price is " << this->price << endl; } }; int main() { // 对于普通类型的对象来说,它们之间的复制是很简单的,例如: // int a = 100; // int b = a; // 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。 Box a(100); Box b = a; // 注意这里的对象初始化要调用拷贝构造函数,而非赋值 a.show(); b.show(); /* * 从以上代码的运行结果可以看出,系统为对象 B 分配了内存并完成了与对象 A 的复制过程。 * 就类对象而言,相同类型的类对象是通过拷贝构造函数来完成整个复制过程的。 * 拷贝构造函数是一种特殊的构造函数,它在创建对象时, * 是使用同一类中之前创建的对象来初始化新创建的对象。拷贝构造函数通常用于: * 通过使用另一个同类型的对象来初始化新创建的对象。 * 复制对象把它作为参数传递给函数。 * 复制对象,并从函数返回这个对象。 */ }