this 指针
一: this指针的理解
//定义一个类, 并使用
class CCar {
public:
int price;
void SetPrice(int p);
};
void CCar::SetPrice(int p)
{ price = p; }
int main()
{
CCar car;
car.SetPrice(20000);
return 0;
}
实际上编译器在编译时, 会先翻译为c语言, 再转化为机器语言.
会将上面的代码转化为下面的C语言的格式:
//把对象翻译为结构体
struct CCar
{
int price;
};
//把成员函数翻译为正常的函数,
//但是输入参数列表中多了一个指向当前结构体(对象)的指针,
void SetPrice(struct CCar * this, int p)
{
this->price = p;
}
int main()
{
//把对象翻译为结构体
struct CCar car;
//使用成员函数等价于使用如下形式的函数,
SetPrice( & car, 20000);
return 0;
}
this指针作用
其作用就是指向成员函数所作用 的对象