【发布时间】:2015-10-13 00:00:51
【问题描述】:
我想要一个派生类,它有一个默认构造函数来初始化继承的成员。
为什么我可以这样做
class base{
protected:
int data;
};
class derived: public base{
public:
derived(){ //note
data = 42;
}
};
int main(){
derived d();
}
但不是这个
class base{
protected:
int data;
};
class derived: public base{
public:
derived(): //note
data(42){}
};
int main(){
derived d();
}
error: class ‘derived’ does not have any field named ‘data’
【问题讨论】:
标签: c++ inheritance constructor polymorphism initializer-list