有以下几种情况:
class MyClass
{
MyClass(){}
MyClass(const MyClass&){}
};
//1. 你自定义的类通过按值传递传给一个函数
void MyFunc(MyClass myclass); //调用这个函数会调用拷贝构造函数
//2. 你想通过已有的类的一个对象来创建另一个对象
MyClass myclass1;
MyClass myclass2(myclass1);//这里会调用拷贝构造函数
//3. 当你用到容器(例如vector)需要向容器中增加元素的时候
vectorv;
MyClass myclass;
v.push_back(myclass); //这里调用拷贝构造函数
产生对象的时候系统自动调用