#include <iostream>

using namespace std;

class X {
  public:
    X() { cout << "constructor X\n"; }
    ~X() { cout << "destructor X\n"; }
};

class A {
  public:
    A() { cout << "constructor A\n"; }
    ~A() { cout << "destructor A\n"; }
};

class B: public A {
  public:
    X    x;
    B() { cout << "constructor B\n"; }
    ~B() { cout << "destructor B\n"; }
};

class C: public B {
  public:
    C() { cout << "constructor C\n"; }
    ~C() { cout << "destructor C\n"; }
};

int main() {
    C c;
}
