在每一个成员函数中都包含一个特殊的指针,这个指针的名字是固定的,称为this。它是指向本类对象的指针,它的值是当前被调用成员函数所在的成员变量得起始地址。下面举个例子来说明一下:
当调用成员函数a.volume时,编译系统会把a的起始地址赋给this指针,于是在成员函数引用数据成员时,就按照this的指向找到对象a的数据成员。
this指针是隐式使用的,他是作为参数被传递给成员函数的,volume的定义如下:
int Box::volume()
{
return (height*width*length);
}
C++会把它处理成:
int Box::volume(Box *this)
{
return (this->height * this->width * this->length);
}
即在成员函数的形参列表中增加一个this指针。在调用成员函数a.volume时,实际上是用一下方式调用的
a.volume( &a );
将对象a的地址传给形参this指针。然后按照this的指向去引用各成员。这些都是编译系统自动实现的。