this指针:用来指向当前对象。每个非静态成员函数都隐藏有一个this指针的函数参数。当一个对象调用成员函数时,编译器要把当前对象的地址传递给this指针。
void Time::showTime()
{
cout << hour << ':' << minute << ':'<<second << endl;
}
等同于
void Time::showTime(Time* const this)
{
cout << hour << ':' << minute << ':'<<second << endl;
}
调用时:EndTime.showTime();
编译器会把当前对象的地址赋值给this指针:
EndTtime.showTime(&EndTime);
this是常指针,也就是指针的值是不可以改变的,始终指向当前对象所在的内存。但是这片内存的值可能是可以改变的,也就是可以修改this指针所指对象的数据成员。当成员方法是const函数,则不可以。
此外,*this标识当前对象,当函数需要返回对象本身的时候,可以用return *this;
this指针还用于运算符重载。