作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
什么时候在 C++ 中隐式复制一个类?
我有一个包含 unique_ptr 的类,因此无法安全复制,因此,我通过创建 X(X&)
和 的私有(private)版本禁用了该类的复制构造函数X& 运算符 = X&
。
我马上遇到了这个类的实例无法返回的问题,因为返回实际上是创建了一个实例的拷贝。
还有其他需要注意的情况吗?
最佳答案
返回不会复制实例,它移动实例。您只是忘记提供一个移动构造函数。此外,在标准容器中使用的类现在在大多数情况下被移动,在这些情况下它们过去是被复制的。
简而言之,提供移动构造函数和移动赋值运算符(最好是交换),您应该会发现几乎所有隐式复制的情况,它们现在都在移动。
关于C++:什么时候隐式复制一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7290078/
我是一名优秀的程序员,十分优秀!