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();
}
Run Code Online (Sandbox Code Playgroud)
是否需要调用基类构造函数或者c ++是否自动执行此操作?例如,C++是否要求您从任何派生类初始化基类成员?
在调用派生类的构造函数之前,将自动调用基类的构造函数.
您可以使用初始化列表显式指定要调用的基本构造函数(如果它有多个):
class Base {
public:
int a;
Base():a(0) {}
Base(int a):a(a) {}
};
class Derived {
public:
int b;
Derived():Base(),b(0) {}
Derived(int a):Base(a),b(0) {}
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
301 次 |
最近记录: |