- 缺省的复制构造函数是浅复制构造函数
- 深复制构造函数必须显式定义
- 当成员变量中含有指针变量时,需要定义深复制构造函数
- 深复制构造函数的特点:
① 定义:类名::类名([const] 类名 &对象名);
② 成员变量的处理:对指针类型的成员变量,使用new操作符 进行空间的申请,然后进行相关的复制操作
浅复制:
被复制对象的所有变量都含有与原来的对象相同的值,而其所有的对其他 对象的引用都仍然指向原来的对象。
深复制:
通过一个对象初始化另一个对象时,不仅将被复制对象中所有非引用类型的字段复制给新对象,也将引用类型所指向地址中存储的对象复制给新的对象。
即原对象改变,浅复制出的对象也改变,而深复制对象不改变。
本文深入解析了深复制和浅复制的概念,阐述了在C++中如何实现深复制构造函数,特别是当类包含指针变量时的必要性。通过实例说明,浅复制下原对象与复制对象之间的引用关系,以及深复制如何确保两个对象完全独立。
850

被折叠的 条评论
为什么被折叠?



