1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
class A { public: virtual void f(){ printf("A.f "); } ~A(){ f(); } }; class B : public A { A a; public: void f(){ printf("B.f "); } B(){ throw -1; } ~B(){ f(); } }; int main() { try{ B b; } catch(...){ printf("Exc");} }
1
A.f A.f Exc