C ++标准(第8.5节)说:
如果程序要求对const限定类型T的对象进行默认初始化,则T必须是具有用户提供的默认构造函数的类类型。
为什么?我想不出在这种情况下为什么需要用户提供的构造函数的任何原因。
struct B{
B():x(42){}
int doSomeStuff() const{return x;}
int x;
};
struct A{
A(){}//other than "because the standard says so", why is this line required?
B b;//not required for this example, just to illustrate
//how this situation isn't totally useless
};
int main(){
const A a;
}
aluckdog
相关分类