Welcome

首页 / 软件开发 / C++ / 构造函数中的this指针

构造函数中的this指针2010-09-27温昱-------------------------------原理-------------------------------

某些人认为不应该在构造函数中使用this指针,因为这时this对象还没有完全形成。

但是,只要小心,是可以在构造函数中使用this指针的:

●在函数体中

●初始化列表中

因为“对象还没有完全形成”不意味着“什么都没有”。

在进入构造函数(及其chaining)之前,Compiler会:

●给class的instance分配内存

●建立运行时刻系统所需的信息(如vtbl等)

●##缺省地## 构造所有类成员

-----------------------------【能】---------------------------------

构造函数的函数体(或构造函数所调用的函数)【能】可靠地访问:

●基类中声明的数据成员

●构造函数所属类声明的数据成员

这是因为所有这些数据成员被保证在构造函数函数体开始执行时已经被完整的建立。

-----------------------------【不能】---------------------------------

构造函数的函数体(或构造函数所调用的函数)【不能】向下调用:

●被派生类重定义的虚函数

这是因为在基类的构造函数执行期间,“对象还不是一个派生类的对象”。

---------------------------【有时】-----------------------------------

以下是【有时】可行的: