关于this指针,对于一个类来说的实例来说,我们可以看到它的成员函数、成员变量,但是实例本身我们看不到,而this指针就是一个时刻指向实例本身的一个指针。
对于this指针有以下几个需要注意的点:
  • this指针本身是一个函数参数,只能在成员函数中使用,全局函数、静态函数都不能使用this,实际上,成员函数默认的第一个参数是:T * const  this。
  • this在成员函数的开始前构造,在成员函数结束后清除。
  • this指针不占用对象的内存空间。
     this相当于静态成员函数的一个隐式的参数,不占用对象的空间。它跟对象之间没有包含关系,只是当前对象被指向而已。
     所有成员函数的参数,不管是不是隐含的,都不会占用对象的空间,只会占用参数传递时的栈空间,或者直接占用一个寄存器。
  • this指针存放位置会因编译器不同而不同,可能是堆、栈、或者寄存器。
  • 我们仅仅成员函数中,直接使用this指针,或者获得它的位置。
10-07 16:20