this指针介绍
- this指针是隐含每一个非静态成员函数内的一种指针。
- this指针不需要定义,直接使用即可。
this指针用途
- 当形参和成员变量同名时,可用this指针来区分;
- 在类的非静态成员函数中返回对象本身,可使用__return *this__
#include "iostream"
using namespace std;
class Person
{
public:
Person(int age)
{
this->age = age;
}
Person& PersonAddage(Person &p)
{
this->age+=p.age;
return *this;
}
int age;
};
void test01()
{
Person p(18);
cout<<"P的年龄为:"<<p.age<<endl;
}
void test02()
{
Person p1(12);
Person p2(10);
p2.PersonAddage(p1).PersonAddage(p1).PersonAddage(p1);
cout<<"p2的年龄为:"<<p2.age<<endl;
}
int main()
{
// test01();
test02();
}
这里一定要注意在有参构造函数返回值选择的时候,一定要记得使用引用来返回,这样子可以保证每次链式的时候都会用到同个p2,如果单纯只返回Person的话,那内部会执行拷贝函数,导致每一次链式的时候都会使用拷贝完的对象,导致最后输出不理想。