下面程序 class A { public: ~A() { fprintf(stderr, "A"); } }; class B: public A { public: ~B() { fprintf(stderr, "B"); } }; int main(int argc, char *argv[]) { B b; return 0; } 的输出是() BA AB A B
class A { public: ~A() { fprintf(stderr, "A"); } }; class B: public A { public: ~B() { fprintf(stderr, "B"); } }; int main(int argc, char *argv[]) { B b; return 0; }
析构函数的调用顺序和构造函数调用顺序相反. 析构的时候, 先析构派生类, 再析构基类.