42 C++的this关键字
C++中有这样一个关键字this,通过它可以访问成员函数。
this
是一个指向当前对象实例的指针,该method(方法)属于这个对象实例。
class Entity
{
public:
int x, y;
Entity(int x,int y)
// : x(x),y(y)
{
x = x;
}
};
如果不用Member Initializer Lists(像注释中一样),我想在方法内部写,由于传入参数的x和成员x名字一样,x=x
只会让传入的x赋值给它自己,也就是什么都不做。
而我真正想做的是引用属于这个类的x和y,this
关键字可以让我们做到这一点。
Entity* e = this;
e->x = x;
// 或者直接用箭头运算符
this->x = x;
#include <iostream>
class Entity;
void PrintEntity(Entity* e);
class Entity
{
public:
int x, y;
Entity(int x,int y)
{
this->x = x;
this->y = y;
PrintEntity(this);
}
int GetX() const
{
// this->x = 5;
const Entity* e = this;
return this->x;
}
};
void PrintEntity(Entity* e)
{
// Print
}