20240611 浅拷贝深拷贝

浅拷贝
1 | class X |
在这里,pi
原始X
对象和复制对象的成员都将指向同一个int
.
深拷贝
原始的所有成员都被克隆(如有必要,递归)。没有共享对象:
1 | class X |
在这里,pi
原始对象和复制X
对象的成员将指向不同的int
对象,但它们具有相同的值。
一个例子
总结
-
主要就是有指针/会被动态分配内存的地方必须要小心深拷贝和浅拷贝
-
复制构造函数执行什么类型的复制?
它依赖于实现。这意味着没有严格的规则,你可以像深拷贝或浅拷贝一样实现它,但据我所知,在拷贝构造函数中实现深拷贝是一种常见的做法。不过,默认复制构造函数执行浅拷贝。
1 | // 自定义拷贝构造函数(深拷贝) |
Comments
Comment plugin failed to load
Loading comment plugin