每一个非静态成员函数智慧诞生一份函数实例,即多个类型的对象会公用一块代码
C++通过指针来区分在一块代码中的不同对象的调用
this指针是隐含在每一个非静态成员函数内的一种指针,它的指针指向被调用的成员函数所属的对象。
用途:
- 当形参与成员变量同名时,可用this指针来区分
- 在类的非静态成员函数中返回对象本身,可用return *this
代码演示:
#include<iostream>
using namespace std;
#include<string>
class Person
{
public:
Person(int age)
{
this->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(10);
//链式思想
p2.PersonAddAge(p1).PersonAddAge(p1).PersonAddAge(p1);
cout << "p2的年龄为: " << p2.age << endl;
}
int main()
{
test02();
return 0;
}