Jea*_*nès 6 c++ inheritance attributes initialization const
我很惊讶这段代码实际上被认为是正确的(gcc 4.2.1):
class A {
public:
const int i;
};
class B: public A {
public:
//B() {}
};
Run Code Online (Sandbox Code Playgroud)
这样我就可以让一些属性非初始化了.编译器在我尝试实例化A时抱怨(当然我同意),但让我在没有任何警告或错误的情况下实例化B!
但更糟糕的是,编译器不一致.当我取消注释B的空ctor时,编译器会在我实例化B时抱怨...对我来说似乎是个错误,对与否?或者我在某处犯了错误?