综合大家和回答和我的理解,我现在是这样理解this指针的:
1、this指针只是指向一个对象但它并不直接属于这个對象
2、this指针也不直接属于类,它并不是类的成员变量它只是类的非静态成员函数中的隐含参数
3、this指针存在于类的每一个非静态成员函数Φ(包括构造函数和析构函数)
4、this指针不存在私有还是公有的属性问题,因为它本身不是类的成员只是类的非静态成员函数中的隐含参數
5、this指针跟类的静态成员函数没有关系,也不能通过this指针调用类的静态成员函数
6、this指针跟类的非静态成员变量没有直接关系因为类的非靜态成员变量只能在类的非静态成员函数中被改变(初始化列表除外),脱离了类的非静态成员函数this->data是没有意义的。
7、this指针虽然是一个指针但它本身并不是一个变量,也不是一个常量只是一个符号(有点晕了),具体跟编译器相关
对于类A而言在运行时刻,会分别有3個this指针分别存在于构造函数A(),析构函数~A()非静态成员函数f()中,当再new多个A的对象时不会再多生成this指针。(关于这个我还不昰很肯定有待商酌)
9、“实际过程是,当通过一个对象调用成员函数时系统先将该对象的地址赋给this指针,然后调用成员函数成员函數对对象的数据成员进行操作时,隐含使用了this指针”(《C++语言程序设计》第3版,第183页第3段郑莉、董渊、张瑞丰 编著,清华大学出版社)
另外对于this指针到底是个什么东西,可以参看下这篇博文提供了一个研究、学习的思路