#include <iostream> using namespace std; /** * * 复制构造函数:在通常情况下,编译器会建立一个默认的复制构造函数,默认构造函数采用已有的对象来建立新对象,所以又直译为拷贝构造函数。程序员可以 * 自己定义复制构造函数,对类A而言,复制构造函数的原型为:A::A(A &) * */ class Test { private: int x; int y; public: Test(int a, int b) { x = a; y = b; } //定义复制构造函数。为了不改变原有对象,下面使用const关键字;复制构造函数必须使用对象的引用作为形式参数。 Test(const Test &t) { x = t.x; y = t.y; cout << "copy constructor" << endl; } void show() { cout << "x:" << x << ",y:" << y << endl; } }; int main() { Test test1(30, 40); Test test2(test1); //使用test1的数据初始化test2,调用了复制构造函数。 /** * 输出结果: * copy constructor * x:30,y:40 */ test2.show(); return 0; }