【发布时间】:2011-09-12 20:42:32
【问题描述】:
我一直在摆弄一个程序大约 20 分钟,我发现由于某种原因它不允许我在初始化列表中使用继承变量。这个程序,例如:
class A {
protected:
int i;
};
class B : public A {
public:
B() : i(45) { }
};
int main() {
B b;
}
会报错
错误:“B”类没有任何名为“i”的字段
但是,如果你把构造函数改成这样:
B() { i = 45; }
它编译。
我从来不知道你不能初始化继承的变量。我的问题是,为什么?
【问题讨论】:
标签: c++ inheritance initializer-list