this指针指向被调用的非静态成员函数所属的对象,程序自带的
代码示例:
#include<iostream>
using namespace std;
class Person
{
public:
Person(int age)
{
//this指针指向被调用的非静态成员函数所属的对象,自带的
this->age = age;//相当于p1->age = age;
}
Person& PersonAddAge(Person& p)
{
this->age += p.age;
//this指向p2的指针,而*this指向的就是p2这个对象本体
return *this;
}
int age;
};
void test01()
{
Person p1(18);
cout << "p1的年龄为:" << p1.age << endl;
}
void test02()
{
Person p1(10);
Person p2(20);
Person p3(30);
p2.PersonAddAge(p1);
cout << "p2的年龄为:" << p2.age << endl;
p2.PersonAddAge(p3);
cout << "p2的年龄为:" << p2.age << endl;
//链式编程思想,PersonAddAge()函数返回对象就可以连续调用,void就不可以
p2.PersonAddAge(p1).PersonAddAge(p1);//返回引用p2会增加2次,返回值p2只增加一次
cout << "p2的年龄为:" << p2.age << endl;
}
int main() {
test01();
test02();
}
运行结果: