调用拷贝构造函数的3中情况:
1:使用一个已经创建的对象来创建对象
Object p1;
Object p2(p1);//会调用拷贝构造
2:值传递的方式—作为函数的参数
void func1(Object p)//会调用拷贝构造
3:值的方式返回局部对象
Object func2()
{
Object p1;
return p1;
}
值得注意,2和3方式在对象大的情况下进行拷贝会很浪费资源。
浅拷贝的问题:
浅拷贝会有重复释放的问题,形成野指针造成程序崩溃,所以需要使用深拷贝。