其他分享
首页 > 其他分享> > c – 删除复制和复制 – 公共,私人或受保护?

c – 删除复制和复制 – 公共,私人或受保护?

作者:互联网

为了使对象不可复制,我们可以显式删除其copy-constructor和copy-assignment操作符.

我的问题是:在这个类的公共,私人或受保护的部分,正确的地方是什么?而且 – 这个选择有什么不同吗?

解决方法:

what is the right place to do it – in the public, private or protected section of the class?

我会把它们放在公共部分.

这是因为删除构造函数或赋值运算符与使它们成为私有/受保护正交;当这些未被删除时,默认情况下它们是公开的.将删除放在这两个部分中的一个似乎在暗示“如果我没有删除它们,我会将它们设为私有/受保护” – 这不是您希望在您的情况下传达的消息.

但请注意,编译器并不关心将删除的部分放在哪个部分.

标签:c,c11,access-modifiers,deleted-functions
来源: https://codeday.me/bug/20190930/1836745.html