有如下程序段:
#include <iostream> using namespace std; class A { public: ~A() { cout << "~A()"; } }; class B { public: virtual ~B() { cout << "~B()"; } }; class C : public A, public B { public: ~C() { cout << "~C()"; } }; int main() { C *c = new C; B *b1 = dynamic_cast<B *>(c); A *a2 = dynamic_cast<A *>(b1); delete a2; }
则程序输出: