據我所知,當我在派生類初始化列表中初始化基類時,立即構造基類,然後基類元素可用。如果這是正確的,爲什麼這不起作用?使用構造函數初始化列表來初始化基類的元素
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