c++ this 指针

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指针作用
其作用就是指向成员函数所作用 的对象

猜你喜欢

转载自blog.csdn.net/qq_29007291/article/details/79870607