拷贝构造函数的调用时机
拷贝构造函数的调用时机通常有三种
- 使用一个已经创建完成的对象来初始化一个新对象
- 以值传递的方式给函数的参数传值
- 以值的方式返回局部对象
下方所有文本均以此代码为基础
1 class Person { 2 public: 3 Person() { 4 cout << "无参构造函数" << endl; 5 mAge = 10; 6 } 7 8 Person(int age) { 9 cout << "有参构造函数" << endl; 10 mAge = age; 11 } 12 Person(const Person& p) { 13 cout << "拷贝构造函数" << endl; 14 mAge = p.mAge; 15 } 16 17 ~Person() { 18 cout << "析构函数!" << endl; 19 } 20 int mAge; 21 };