#include<iostream>
using namespace std;
class Person
{
public:
Person(int age) {
//this指针指向被调用的成员函数所指的对象
//this是指向这个对象得指针,*this是指向这个对像本身(理解为解引用)
this->age = age;
}
Person& PersonAddAge(Person &p)//如果返回person本体,必须要用引用的方式返回
{
this->age += p.age;
return *this;//*this返回类的本体。因此得以链式编程
}
int age;
};
void test01()
{
//1.解决名称冲突问题(形参和属性名相同的情况)
Person p1(18);
cout << "p1的年龄" <<p1.age<< endl;
}
void test02()
{
//
Person p2(18);
Person p3(19);
p2.PersonAddAge(p3).PersonAddAge(p3);
// cout << p2.PersonAddAge(p3).PersonAddAge(p3) << endl;此行报错原因是上面的PersonAddAge函数返回值是一个数,并不是p2
cout <<p2.age<< endl;
}
int main()
{
test01();
test02();
return 0;
}