浅拷贝 vs 深拷贝

含指针成员时,拷贝指针 ≠ 拷贝它指向的内容
DoubleArray b = a;  // 拷贝构造 浅拷贝(默认) 只复制指针 → 共享同一块堆内存 a 栈对象 low/high 0,2 storage 0x6a40 b b = a 的副本 low/high 0,2 storage 0x6a40 堆内存(共享一份) 1.1 2.2 3.3 @0x6a40 两个 storage 都是 0x6a40,指向同一块 改 a 会动到 b;析构时 double free / 悬垂指针 → 崩溃 深拷贝(自定义) new 一块新内存 → 各自独立 a 栈对象 low/high 0,2 storage 0x6a40 b b = a 的副本 low/high 0,2 storage 0x8c10 1.1 2.2 3.3 @0x6a40 1.1 2.2 3.3 @0x8c10(新 new 的一份) b.storage = 0x8c10 ≠ a.storage 逐元素复制内容;改 a 不影响 b;各自安全析构