C++拷贝构造函数
1.拷贝构造函数
拷贝构造函数的名称必须和类名称一致,它的唯一的一个参数是本类型的一个引用变量。
拷贝构造函数必须以引用的方式传递参数。这是因为,在值传递的方式传递给一个函数的时候,会调用拷贝构造函数生成函数的实参,这样就会无限循环的调用下去,直到函数的栈溢出。
如果在类中没有显式地声明一个拷贝构造函数,那么,编译器将会自动生成一个默认的拷贝构造函数,该构造函数完成对象之间的位拷贝,位拷贝又称浅拷贝。
2.深拷贝和浅拷贝
如果一个类拥有资源,当这个类的对象发生复制过程的时候,资源重新分配,这个过程就是深拷贝,反之,没有重新分配资源,就是浅拷贝。