Muh*_*sim 3 c++ constructor default public
什么是构造函数的C++和默认访问,为什么?
公共,私人还是受保护?
我如何通过代码检查它?
bri*_*ore 11
如果您没有自己声明构造函数,编译器将始终public为您生成一个简单的构造函数.它们还将隐式创建公共副本构造函数和副本赋值运算符.
从c ++标准12.1.5开始:
如果类X没有用户声明的构造函数,则不会将没有参数的构造函数隐式声明为默认值.隐式声明的默认构造函数是其类的内联公共成员.
12.8.7和12.8.11:
如果类定义没有显式声明复制构造函数,则会隐式声明一个.[...]隐式声明的复制/移动构造函数是其类的内联公共成员.
最后12.8.18,12.8.20,12.8.22:
如果类定义未显式声明复制赋值运算符,则会隐式声明一个.[...]如果类X的定义没有显式声明一个移动赋值运算符,那么将隐式声明一个[...].隐式声明的复制/移动赋值运算符是其类的内联公共成员.
如果您使用c++11移动构造函数将不会始终生成.有关更多信息,请参见第12.8.20节.
| 归档时间: |
|
| 查看次数: |
1430 次 |
| 最近记录: |