在每一个成员函数中都包含一个常量指针,我们称其为this指针,该指针指向调用本函数的对象,其值为该对象的首地址。通过该指针,我们可以在成员函数的函数体内访问对象。其中this是C++的一个关键字。
#include<iostream>
using namespace std;
class book
{
public:
book(){price = 0.0; title = NULL;}
void copy(book &b);
private:
double price;
char * title;
};
void book::copy(book &b)
{
if(this == &b)
{
cout<<"same object!"<<endl;
return;
}
else
{
price = b.price;
}
}
int main()
{
book Alice;
book Harry;
Harry.copy(Alice);
Harry.copy(Harry);
return 0;
}
注意:
this指针是常量指针,它的值是不能被修改的,一切企图修改该指针的操作如赋值、递增、递减等都是不允许的。此外this指针只非static成员函数中才是有效的。this指针只能用于非静态成员函数内。