怎么防止在C ++中意外复制对象?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (21)

我被告知要“意识到可以防止复制的方式”。

我不确定这是什么意思,但假设他们的意思是我们应该阻止类被复制,如果这不是必需的。

我能想到的是如下:

  1. 使类的复制构造函数为私有。
  2. 使类的赋值运算符(运算符=)保密。
  3. 使类的构造函数明确(阻止使用不正确的变量创建类)。
  4. 对于执行内存分配和需要复制的所有类,确保复制构造函数和赋值操作符执行深度复制而不是浅度复制。

我的想法对吗?

提问于
用户回答回答于

如果你的编码标准规定“意识到可以防止(意外)复制的方式”,我猜测他们不仅仅是在阻止类本身内的副本,而是关于不必要/意外复制的性能影响使用类。 C++新手的代码中不必要地浪费性能的主要原因之一是不必要的复制,通常是通过临时对象。

用户回答回答于

扫码关注云+社区

领取腾讯云代金券