- 缺省的复制构造函数是浅复制构造函数
- 深复制构造函数必须显式定义
- 当成员变量中含有指针变量时,需要定义深复制构造函数
- 深复制构造函数的特点:
① 定义:类名::类名([const] 类名 &对象名);
② 成员变量的处理:对指针类型的成员变量,使用new操作符 进行空间的申请,然后进行相关的复制操作
浅复制:
被复制对象的所有变量都含有与原来的对象相同的值,而其所有的对其他 对象的引用都仍然指向原来的对象。
深复制:
通过一个对象初始化另一个对象时,不仅将被复制对象中所有非引用类型的字段复制给新对象,也将引用类型所指向地址中存储的对象复制给新的对象。
即原对象改变,浅复制出的对象也改变,而深复制对象不改变。