C++的深复制与浅复制

时间:2021-12-22 19:44:18

  1这是关于复制构造函数的问题

  2复制构造函数中,复制的策略是逐个成员依次复制,但是一个类可能拥有资源(如堆内存)

     这时就出现了两个对象拥有同一个资源的情况,当对象析构时,该资源经历两次返还,但只有一个

     资源返还,第二次返还时已无资源,因此编译会报错。

   3其实主要是针对类中数据成员有指针的情况,在堆内申请动态内存的情况

   4这时只需显示的定义复制构造函数,不要用系统给的默认的就可以,其实就是深复制(既复制成员

    又复制资源),而浅复制是只复制成员,不复制资源