this指针
大约 2 分钟
类可以实例无数的对象,每个对象都有自己的成员变量,但是共享一套成员方法代码(存储在.text)。类的成员方法一经,会给的非静态成员函数都加一个this指针,接收调用该方法的对象的地址(即this指针的作用就是区分不同对象的(接收调用该方法的对象的地址)

- this指针指向本身
- this指针隐藏在**(非静态)成员函数的第一个参数的位置**
- 被const修饰
类类型 * const this
,即指针常量
void Point::print(Point *const this)
{
cout << "(" << this->_ix
<< "," << this->_iy
<< ")" << endl;
}
对于类成员函数而言,并不是一个对象对应一个单独的成员函数体,而是此类的所有对象这个成员函数体。 当程序被编译之后,此成员函数地址即已确定。而成员函数之所以能把属于此类的各个对象的数据区别开, 就是靠这个this指针。函数体内所有对类数据成员的访问, 都会被转化为this->数据成员的方式。
这就是一套方法能知道处理哪个对象的原因:因为当用对象调用这些方法的时候,他就把对象的地址当作实参传给这些函数了,这些函数在编译过程中会产生this指针来接收所传入函数的地址。