#include <iostream>
class A
{
public:
A() = default;
~A() { std::cout << "DCtor A\n"; }
};
class B
{
A a;
public:
B() = default;
~B() { std::cout << "DCtor B\n"; }
};
class C
{
B b;
public:
C() = default;
~C() { std::cout << "DCtor C\n"; }
};
int main() {
C a;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgQQp7CiBwdWJsaWM6CglBKCkgPSBkZWZhdWx0OwoJfkEoKSB7IHN0ZDo6Y291dCA8PCAiREN0b3IgQVxuIjsgfQp9OwpjbGFzcyBCCnsKIEEgYTsKcHVibGljOgoJQigpID0gZGVmYXVsdDsKCX5CKCkgeyBzdGQ6OmNvdXQgPDwgIkRDdG9yIEJcbiI7IH0KfTsKY2xhc3MgQwp7CiBCIGI7CnB1YmxpYzoKCUMoKSA9IGRlZmF1bHQ7Cgl+QygpIHsgc3RkOjpjb3V0IDw8ICJEQ3RvciBDXG4iOyB9Cn07CgppbnQgbWFpbigpIHsKCUMgYTsKCQp9