复制构造函数(即拷贝构造函数)一般会在三种情况下调用(以下案例的制作前提都默认为已经创建了一个可以被访问的属性完整的类)
- 使用一个已经创建完毕的对象去初始化一个新对象
void example01()
{
Example e1(20);
Example e2(e1);
}
- 值传递的方式给函数参数传值
void func(Example e){
...
}
void example()
{
Example e;
func(e);
}
- 以值方式返回局部对象
Example func{
Example e1;
return e1;
}
void example()
{
Example e = func();
}
以上情况均会进行复制构造函数的调用