现在的位置: 首页 > 综合 > 正文

复习:constructor和destructor的compiler实现

2012年03月07日 ⁄ 综合 ⁄ 共 361字 ⁄ 字号 评论关闭
通常有compiler将其分解成为多步构造。
Constructor 被分解后应该是这样的:
1)对于一个most derived类,初始化vbptr,并调用virtual base 的构造函数。
 2)调用non-virtual base classes 的构造函数。
 3)调用data members的构造函数
4)初始化vfptr。
5)执行用户写在constructor中的代码。
Destructor被分解后应该是这样的:
1) 初始化vfptr
2) 执行用户卸载destructor中的代码。
3) 调用data member 的析构函数,顺序是与data member 在类中声明的顺序相反。
4) 调用non-virtual bases的析构函数,与声明的顺序相反。
5) 对于一个most derived 的类,调用它的virtual base的析构函数。

抱歉!评论已关闭.