this指针指向被调用的成员函数所属的对象。
this指针是隐含每一个非静态成员函数内的一种指针。
this指针不需要定义,直接使用即可。
用途:
#include<iostream>
using namespace std;
class Person {
public:
int age;
void setAge(int age) {
this->age = age;
}
//如果不是返回Person&,注意拷贝构造函数时所说,
//如果直接返回Person,那么返回的就是一个新的拷贝的对象
Person& PersonAddAge(Person p) {
this->age += p.age;
return *this;
}
Person PersonAddAge2(Person p) {
this->age += p.age;
return *this;
}
};
int main() {
Person p;
p.setAge(12);
cout << "对象p的年龄为:" << p.age<<endl;
Person p2;
p2.setAge(12);
p2.PersonAddAge(p).PersonAddAge(p);
cout << "对象p2的年龄为:" << p2.age << endl;
Person p3;
p3.setAge(12);
//意思是p2只操作了一次,后面操作的不是p2,所以只加了一次,输出为24
p3.PersonAddAge2(p).PersonAddAge2(p);
cout << "对象p3的年龄为:" << p3.age << endl;
system("pause");
return 0;
}
输出: