1、什么是this指针
在C++中,this是一个关键字,用于表示当前对象的指针,这样就可以在成员函数中访问对象的成员变量和成员函数。在C++里面,每一个对象都能通过this指针来访问自己的地址。
this是所有成员函数的隐藏参数。
2、this指针用法
2.1 访问成员变量
在成员函数中,如果成员变量和参数同名,可以使用this
指针来区分成员变量和参数。
如下代码中,定义了成员变量name、age,其与传入的形参name、age相同,利用this指针可以访问成员变量,这样有效区分这两个变量。
class Worker {
private:
string name;
int age;
public:
void setName(string name) {
this->name = name;
}
void setAge(int age) {
this->age = age;
}
};
2.2 访问成员函数
在printAge()函数中,利用this指针,访问了函数getAge()。
class Worker
{
private:
string name;
int age;
public:
void setName(string name)
{
this->name = name;
}
int getAge()
{
return age;
}
void getAge(int age)
{
this->age = age;
}
void printAge()
{
cout << "the age is " << this->getAge() << endl;
}
};
2.3 返回指向对象的指针
在成员函数中,如果想要返回指向对象的指针,就可以使用this指针。例如:
class Car {
public:
Car* newInstance() {
return this;
}
void run() {
cout << "The car is running." << endl;
}
};
3、小结
-
在静态成员函数中不能使用this指针。因为静态成员函数没有this指针,它们仅能访问非静态数据成员和非静态成员函数。
-
this指针不需要显示地定义,编译器会自动添加。
-
空指针访问成员变量,提前判断,保证程序健壮。