继承的const属性和初始化(bug?)

时间:2013-01-28 14:59:16

标签: c++ inheritance attributes initialization const

我很惊讶这段代码实际上被认为是正确的(gcc 4.2.1):

class A {
public:
  const int i;
};
class B: public A {
public:
  //B() {}
};

这样我就可以让一些属性非初始化了。编译器在我尝试实例化A时抱怨(我当然同意),但是让我在没有任何警告或错误的情况下实例化B!

但更糟糕的是,编译器不一致。当我取消注释B的空ctor时,编译器会在我实例化B时抱怨...对我来说似乎是个错误,对与否?或者我在某处犯了错误?

1 个答案:

答案 0 :(得分:3)

这确实是一个编译器错误,报告为here