对于this指针有以下几个需要注意的点:
- this指针本身是一个函数参数,只能在成员函数中使用,全局函数、静态函数都不能使用this,实际上,成员函数默认的第一个参数是:T * const this。
- this在成员函数的开始前构造,在成员函数结束后清除。
- this指针不占用对象的内存空间。
所有成员函数的参数,不管是不是隐含的,都不会占用对象的空间,只会占用参数传递时的栈空间,或者直接占用一个寄存器。
- this指针存放位置会因编译器不同而不同,可能是堆、栈、或者寄存器。
- 我们仅仅成员函数中,直接使用this指针,或者获得它的位置。