c++ - 删除copy-ctor和copy-assignment - public、private还是protected?
问题描述
为了使对象不可复制,我们可以显式删除其复制构造函数和复制赋值运算符。
public
我的问题是:在课堂的,private
或protected
部分中做这件事的正确位置是什么?而且 - 这个选择有什么不同吗?
解决方案
什么是正确的地方——在课堂的公共、私人或受保护的部分?
我会把它们放在public
section中。
这是因为删除构造函数或赋值运算符与生成private
/是正交的protected
;当这些没有被删除时,它们是public
默认的。在我看来,将删除内容放在这两个部分之一中似乎是在暗示“如果我没有删除它们,我会将它们设为私有/受保护”——这不是您想在您的案例中传达的信息。
但是请注意,编译器并不关心您将删除放在哪个部分。
推荐阅读
- java - Spring Data JPA:如何为类手动分配 id?
- javascript - 更改页面会禁用 Ruby on Rails 上的导航栏菜单
- python - 函数适用于小样本但不适用于大样本(Python)
- node.js - 后端和前端的文件夹结构
- flutter - 如何在 Flutter 中让 Form 出现在键盘上方?
- python - 如何最好地实现一个只能调用一次 setter 的属性?
- c++ - 双变量的设置值与 VS2019 中的预期不同
- azure - 读取 ifelse true/false 活动输出的数据工厂活动
- pyspark - 循环一次 pyspark 数据框以查找包含值列表的行
- java - 对于 Object 中的数字,instanceOf Integer 失败