–虚基类的初始化与一般的多重继承的初始化在语法上是一样的,但构造函数的调用顺序不同;
–若基类由虚基类派生而来,则派生类必须提供对间接基类的构造(即在构造函数初始列表中构造虚基类,
无论此虚基类是直接还是间接基类)
–调用顺序的规定:
•
先调用虚基类的构造函数,再调用非虚基类的构造函数
•
若同一层次中包含多个虚基类
,
这些虚基类的构造函数按它们的说明的次序调用
•
若虚基类由非基类派生而来
,
则仍然先调用基类构造函数
,
再调用派生类构造函数
#include <iostream>
using namespace std;
class A {
int a;
public