必备技能9.8:this关键字
在我们学习运算符重载之前,有必要先来讨论一下C++中的另外一个关键字:this。当每次调用成员函数的时候,会自动地传入一个指针,叫做this指针。该指针指向调用该成员函数的对象。
正如我们在前面学习到的那样,成员函数是可以直接访问类的私有数据的。例如下面的程序:
class Test
{
int i;
void f()
{
//....
};
};
在函数f()中,我们可以使用下面的语句来为i赋值10:
i = 10;
实际上,上述语句是下面语句的简写形式:
this->i = 10;
为了更好的理解这点,请参看下面这个简短的程序:
//使用this关键字
#include <iostream>
using namespace std;
class Test
{
int i;
public:
void load_i(int val)
{
this->i = val; //等同于 i = val;
};
int get_i()
{
return this->i; //等同于 return i;
}
};
int main()
{
Test o;
o.load_i(100);
cout << o.get_i();
return 0;
}
上面的程序将显示数字100。当然,上述例子并不能展示this指针的重要性,也不会有人以这种方式来使用this。但是,不久我们就会看到为什么this指针在C++中很重要了。
练习:
1. 结构体是否可以函数成员函数
2. 联合体有什么特点?
3. this指针代表什么?