#include<iostream>
using namespace std;
class Base
{
class Derived : public Base
{
void main()
{
using namespace std;
class Base
{
private:
int a;
public:
};Base(int i) { a = i; cout << "Constructing Base a = " << a << endl; }~Base() { cout << "Destroying Base a = " << a << endl; }
class Derived : public Base
{
private:
int d;Base member;
public:
// 向基类 Base 的构造函数传递参数 i, 对象成员的构造函数传递参数 j
// 虽然初始化列表里member(j)在前,但还是基类的构造函数被优先调用,对象成员的构造函数次之,
// 最后执行派生类的构造函数.在有多个对象成员的情况下,这些成员的调用顺序取决于它们在派生类中
// 被说明的顺序
};Derived(int i, int j, int k) : member(j), Base(i){d = k;cout << "Constructing Derived d = " << d << endl;}~Derived() { cout << "Destroying Derived d = " << d << endl; }
void main()
{
Derived d(5, 8, 9);}