2012年8月22日
摘要: 2012-8-22cswuyg1. 派生类对象析构时,基类析构函数执行的前期会修改对象的虚函数表指针值 一般情况下(特指基类不使用novtable属性),debug编译出来的exe,派生类对象的析构,在析构基类部分的时候,对象的虚函数表指针值项会被修改成基类的虚函数表地址,然后再执行基类的析构函数体。其中高亮的那一行是修改对象的虚函数表指针值为基类虚函数表地址 release下编译出来的就不是这样子。以一个小测试程序为例,编译器做了优化,并没有在调用基类析构函数时做赋值。但不确定编译器是否会一直做优化,因为看到了派生类析构函数体实质内容执行之前对虚函数表指针值做了一次赋值,那么为什么在基... 阅读全文
posted @ 2012-08-22 12:32 烛秋 阅读(4032) 评论(0) 推荐(0) 编辑