Advertisement

开发语言

阅读量:

C++与Python中的赋值、浅拷贝与深拷贝

  • 1. C++中的赋值操作及其浅层复制与深层复制
  • 2. Python中的赋值操作及其浅层复制与深层复制
    • 2.1 概念说明
    • 2.2 总结
    • 2.3 示例与说明:通过实例理解
      1. 不可变对象的赋值操作及其实现方式—— shallow 和 deep 复制
    1. 可变对象的赋值操作及其 shallow 和 deep 复制方式分析
    1. 分析可变对象 deep 和 shallow 复制时外层与内层元素变化的影响

写在前面 :Python和C++中的赋值与深浅拷贝,由于其各自语言特性的问题,在概念和实现上稍微有点差异,本文将这C++和Python中的拷贝与赋值放到一起,希望通过对比学习两语言实现上的异同点,加深对概念的理解。

1. C++中的赋值、浅拷贝、深拷贝

C++中所谓的浅拷贝就是通过(系统默认的)拷贝构造函数来实现数据成员的一一复制。通常情况下,默认的拷贝构造函数能够实现这一效果;但若类中存在指向内存对象的数据成员(需要在堆上分配内存),则直接使用默认的 shallow copy 构造函数会导致错误发生。具体来说,在这种情况下,默认 shallow copy 会使得两个实例中的指针指向同一个内存地址;当实例被销毁时(调用析构函数)

全部评论 (0)

还没有任何评论哟~