首先,任何虚拟基类构造函数按照被继承的顺序构造
然后,任何非虚拟基类构造函数按照被继承的顺序构造
最后,成员变量按照声明顺序进行构造
demo
#include
using namespace std;
class Base
{
public:
Base(int i) : m_j(i), m_i(m_j) {}
Base() : m_j(0), m_i(m_j) {}
int get_i() const
{
return m_i;
}
int get_j() const
{
return m_j;
}
private:
int m_i;
int m_j;
};
int main()
{
Base obj(98);
cout << obj.get_i() << endl << obj.get_j() << endl;
return 0;
}
输出为一个随机数和98