构造函数(constructor):构造函数是类的一种特殊的方法,主要用在创建对象时初始化对象即为对象成员变量赋初值,总与new运算符一起使用。
析构函数(destructor):析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。
构造函数提供了一种机制,通过它完成必要的初始化工作,从而使对象成为有意义的存在物,而不仅仅只是一块原始的空间。
多层继承中,最基础的类的构造函数首先被执行,然后才是上一层的构造函数,如此到最外层的继承类。
构造函数的隐含(或半隐含)工作:类关联信息表;如果类中含有虚函数,或者,它覆盖了基类中的虚函数(两种情况下都意味着类有自己的虚函数表)。那么,设置正确的关联后,将存在一个指针(v-ptr),它正确地指向了该虚函数表(v-table)。此后,多态才能表现出所期望的正确行为。
与构造函数的执行次序刚好相反,析构函数从最外层的类开始执行,最基础的类的析构函数最后执行,看起来就象一层层的剥壳。结果看起来是这样的:用户析构代码->成员对象析构->基类析构函数。
阅读(1518) | 评论(0) | 转发(0) |