
默认拷贝构造函数的汇编代码:

其实就相当于这一段代码

拷贝构造函数

多态拷贝构造函数

子类拷贝构造函数调用父类拷贝构造函数,利用父指针可以指向子类。
浅拷贝
- 编译器默认提供的拷贝是浅拷贝
-
浅拷贝:指针类型的变量只会拷贝地址值
image.png
堆空间指向栈空间不安全,因为栈空间不能人为控制回收。所以堆空间指向栈空间的指针可能变成野指针。
所以要让name数组在堆空间中申请,并且手动释放。

浅拷贝带来的问题

- 析构造成double free
- 修改car2,cai1也会改变
深拷贝
-
深拷贝:将指针指向的内容拷贝到新的存储空间
image.png
image.png
网友评论