- 深拷贝是原始对象的值和拷贝对象的值是不同内存(如两个指针指向不同的地址)
- 浅拷贝是原始对象的值和拷贝对象的值是同内存(如两个指针指向同个地址)
- 拷贝构造函数的参数是常量引用,在赋值时必须采用深拷贝。所以在赋值时,必须是用原始对象的变量值作为参考值来分配一块新内存,然后将该内存分配给拷贝对象的变量。如下两个例子:
- myClass(const myClass& src): ptr( new int(*src.ptr) ){ }
- myClass(const myClass& src): ptr( make_unique<int>(*src.ptr) ){ }
- 移动构造函数的参数是右值引用,采用std::move()窃取资源,而不是拷贝
08-14
396
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-09
2163
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-08
565
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)