class Base {
public:
int a;
Base():a(0) {}
virtual ~Base();
}
class Derived : public Base {
public:
int b;
Derived():b(0) {
Base* pBase = static_cast<Base*>(this);
pBase->Base();
}
~Derived();
}
是否需要调用基类构造函数或C++是否自动执行此操作?例如 C++是否要求您从任何派生类初始化基类成员?C++是否要求您从其派生类中初始化基类成员?
“*请问C++要求你从任何派生类初始化基类成员*?”不,事实上它甚至不允许你。 'Base :: Base'初始化Base的成员,'Derived :: Derived'调用'Base :: Base'然后初始化'Derived'的成员。 – ildjarn
试图编译这个会让你看到你不能调用那样的构造函数。 – chris
@chris我远离编译器,此刻我正在努力工作。此外,它澄清了其他人以后谷歌搜索=) –