6

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

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

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

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

4

1 回答 1

3

这确实是一个编译器错误,在此处报告。

于 2013-01-28T15:25:16.290 回答