合成的复制控件成员总是公共的
Are synthesized copy control members always public?
当我们没有定义任何构造函数时,编译器会为我们合成一个默认构造函数。如果我们自己不定义复制构造函数、复制赋值函数和析构函数,编译器总是会合成它们。我想知道合成的复制控件成员是否总是公共的?或者是否有任何方法来控制这些合成成员的访问?
Edit:澄清一下,如果我根本不声明这些成员,我想知道这些成员的默认访问是什么。
是的,您可以获得合成的特殊功能,但使用不同的访问控制:
class Foo {
private:
Foo() = default;
};
因为它仍然是声明为私有的,所以它不是公共的,但是你不需要定义它
它们应该是公共的
http://en.cppreference.com/w/cpp/language/copy_constructor如果没有为类类型(结构、类或联合)提供用户定义的复制构造函数,编译器将始终将复制构造函数声明为其类的非显式内联公共成员
阻止这些成员函数可用的旧方法是自己将它们声明为private。现在您可以将成员函数设置为delete
:
Example& operator = (const Example& rhs) = delete;
相关文章:
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- 在编译时,C++项目抛出错误 C2228,这是预期的,因为控件在运行时未达到该点
- 如何更改窗体上所有控件的标题?[C++生成器]
- 双击更改 mfc 中列表控件中的行的颜色
- 派生的 wxPanel 控件如何访问其中包含 wxDialog 中的数据?
- 如何从代码本身向 wxwidgets 中的文本控件插入字符?
- 如何在MFC中的静态文本控件上插入图标?
- 我的主窗口在创建时或单击更新区域时是否会收到编辑控件?
- 如何在Qt C++中向自定义控件添加属性?
- C/C++ 检测双击 TVItem 的常用控件
- 从C++标头中导入常量而不是硬编码它们:扩展 .net 控件?
- 控件不会在选择函数旁边移动
- MFC:我们能否扩展CEditView中存在的CEdit控件类行为
- C++中的复制控件
- 抽象类中的复制控件
- 复制C++POD时控件对填充的影响
- 复制字符串中指针的控件
- 合成的复制控件成员总是公共的
- 已删除的默认构造函数(和复制控件成员)缺少规则