#include struct A{ A(){std::cout<<"Adef\n";} A(int){std::cout<<"Aint\n";} ~A(){std::cout<<"~A\n";} }; struct B:public A{ B(int b){std::cout<<"Bint\n";} ~B(){std::cout<<"~B\n";} }; struct C:public A{ C(int c):A(c){std::cout<<"Cint\n";} ~C(){std::cout<<"~C\n";} }; int main() { B b(1); // Adef Bint C c(1); // Aint Cint } // ~C ~A ~B ~A