This指针

来源:互联网 发布:ibm的人工智能 编辑:程序博客网 时间:2024/06/04 19:42

1、this指针只是指向一个对象,但它并不直接属于这个对象

2、this指针也不直接属于类,它并不是类的成员变量,它只是类的非静态成员函数中的隐含参数

3、this指针存在于类的每一个非静态成员函数中(包括构造函数和析构函数)

4、this指针不存在私有还是公有的属性问题,因为它本身不是类的成员,只是类的非静态成员函数中的隐含参数

5、this指针跟类的静态成员函数没有关系,也不能通过this指针调用类的静态成员函数

6、this指针跟类的非静态成员变量没有直接关系。因为类的非静态成员变量只能在类的非静态成员函数中被改变
(初始化列表除外),脱离了类的非静态成员函数,this->data是没有意义的。

7、this指针虽然是一个指针,但它本身并不是一个变量,也不是一个常量,只是一个符号,具体跟编译器相关

8、

class A 
{
  int i;
public:
  void f() { i = 100; }  
};

对于类A而言,在运行时刻,会分别有3个this指针,分别存在于构造函数A(),析构函数~A(),非静态成员函数f()中,
当再new多个A的对象时,不会再多生成this指针。

9、“实际过程是,当通过一个对象调用成员函数时,系统先将该对象的地址赋给this指针,然后调用成员函数,
成员函数对对象的数据成员进行操作时,隐含使用了this指针”。
(《C++语言程序设计》第3版,第183页第3段,郑莉、董渊、张瑞丰 编著,清华大学出版社)

原创粉丝点击