肖总问到这个问题,写了个程序验证: class Member { public: Member (){} virtual ~Member (){printf(“member destruct\n”);} }; class Base { public: Base (){} virtual ~Base (){ printf(“destruct\n”);} private: Member member_; }; int main(int argc, const char *argv[]) { Base c; return 0; }
结果是:
destruct
member destruct
可见析构的时候先调用析构函数,最后析构成员对象。
PREVIOUS分布式系统/NOSQL入门书单
NEXT澄清几个关于C++继承的问题