C++ this 指针
概述
在 C++ 编程中,我们可以使用 this 关键字来表示引用类的当前实例对象的指针,通常有以下 3 种用法:
- 可以用来将当前对象作为参数传递给另一个方法;
- 可以用来引用当前类的实例变量(避免与其他同名变量混淆);
- 可以用来声明索引器(indexers)。
示例代码
下面通过一个简单的示例来加深对 C++ 中 this 关键字的理解,这里主要展示第 2 中用法。
#include <iostream>
using namespace std;
class Human
{
public:
string name;
string gender;
Human(string name, int gender)
{
this->name = name;
this->gender = gender == 0 ? "female" : "male";
}
};
class Employee: public Human
{
public:
int id; // data member (also instance variable)
float salary;
Employee(int id, string name, float salary): Human(name, 0)
{
this->id = id;
this->salary = salary;
}
void display()
{
cout << id << " " << name << " " << gender << " " << salary << endl;
}
};
int main(void)
{
Employee e1 = Employee(101, "Olalla", 89000); // creating an object of Employee
Employee e2 = Employee(102, "Maggie", 59000); // creating an object of Employee
e1.display();
e2.display();
return 0;
}