据我所知,当我在派生类初始化列表中初始化基类时,立即构造基类,然后基类元素可用。如果这是正确的,为什么这不起作用?使用构造函数初始化列表来初始化基类的元素
class Base
{
public:
int elem;
}
class Derived : public Base
{
Derived() : Base(), elem(1) {}
// error: class 'Derived' does not have any field named 'elem'
}
注:在我来说,我不能作出Base
任何改变(这是一个固定的接口类)。
我在回避你的直接问题,但是 - 这是'Base'的初始化工作,IMO。 –
@BrianCain在我的情况下'Base'是一个包含实现('Derived')可以定义的回调函数对象的接口。 – arman