zoukankan      html  css  js  c++  java
  • 深拷贝和浅拷贝

    浅拷贝通常是编译器提供的默认拷贝构造函数和默认赋值构造函数。

    当类中有指针变量的时候,比如把a赋值给b。

    b = a;

    默认的赋值函数会导致b原有的内存没有释放,出现内存泄漏。

    第二个问题是,b和a的指针,指向了同一块内存,不管是改动a,还是改动b,都会影响另一方。

    第三是,当对象析构的时候,指针变量会被释放俩次(指向同一块内存区域)

    在这种情况下,我们需要自己去编写拷贝构造函数和赋值构造函数

    也就是深拷贝,我们为每一个对象都分配自己的内存空间,特别是有指针成员的时候,为指针成员重新申请一块内存空间(堆区)。

    //---补充一个实例----

  • 相关阅读:
    每日总结50
    每日总结49
    每日总结48
    每日总结47
    每日总结46
    每日总结45
    每日总结44
    每日总结42
    每日总结41
    每日总结39
  • 原文地址:https://www.cnblogs.com/EvansPudding/p/12566403.html
Copyright © 2011-2022 走看看