美文网首页
c++:拷贝构造函数&&深浅拷贝

c++:拷贝构造函数&&深浅拷贝

作者: 全村的卡密 | 来源:发表于2020-03-14 18:18 被阅读0次
image.png

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

image.png

其实就相当于这一段代码


拷贝构造函数

image.png

多态拷贝构造函数

多态

子类拷贝构造函数调用父类拷贝构造函数,利用父指针可以指向子类。


浅拷贝

  • 编译器默认提供的拷贝是浅拷贝
  • 浅拷贝:指针类型的变量只会拷贝地址值


    image.png

堆空间指向栈空间不安全,因为栈空间不能人为控制回收。所以堆空间指向栈空间的指针可能变成野指针。

所以要让name数组在堆空间中申请,并且手动释放。


image.png

浅拷贝带来的问题

image.png
  • 析构造成double free
  • 修改car2,cai1也会改变

深拷贝

  • 深拷贝:将指针指向的内容拷贝到新的存储空间


    image.png
    image.png

相关文章

  • c++:拷贝构造函数&&深浅拷贝

    默认拷贝构造函数的汇编代码: 其实就相当于这一段代码 拷贝构造函数 多态拷贝构造函数 子类拷贝构造函数调用父类拷贝...

  • c++学习笔记2(GeekBand)

    拷贝构造、拷贝赋值和析构 c++中有Big Three三个特殊的函数,他们就是拷贝构造函数,拷贝赋值函数和析构函数...

  • [C++之旅] 12 拷贝构造函数

    [C++之旅] 12 拷贝构造函数 拷贝构造函数的特点 如果没有自定义的拷贝构造函数则系统自动生成一个默认的拷贝构...

  • C++ 构造函数,类的成员变量

    c++ 05 构造函数无参构造函数有参构造函数 拷贝构造函数 浅拷贝 深拷贝 类的成员变量 四类特殊的成员变量

  • C++ 拷贝控制(二) — 移动构造函数和移动赋值运算符

    相关文章: C++ 拷贝控制(一) — 析构函数、拷贝构造函数与拷贝赋值函数 C++ 引用类型 — 左值引用、常引...

  • C++ 拷贝构造函数浅析

    什么是拷贝构造函数:拷贝构造函数,顾名思义,就是在拷贝的时候调用的构造函数。 几个原则:C++ primer p4...

  • c/c++/c++11 浅拷贝和深拷贝

    目录 1 c++拷贝 1.1 拷贝构造函数1.2 浅拷贝1.3 深拷贝 2 c语言拷贝 2.1 浅拷贝2.2 深拷...

  • C++拷贝构造函数——难点

    拷贝构造函数 - C++详细 | 编程字典

  • C++语言基础(02)

    1.可变参数 2.构造函数、析构函数、拷贝构造函数 构造函数 拷贝构造函数 //浅拷贝(值拷贝)问题 //深拷贝

  • c++第二周笔记

    C++ 第二周笔记 本周的内容比较多,主要介绍了三个重要函数: 拷贝构造、拷贝赋值、析构函数。 1.拷贝构造函数。...

网友评论

      本文标题:c++:拷贝构造函数&&深浅拷贝

      本文链接:https://www.haomeiwen.com/subject/jljrshtx.html