#include <iostream>
#include <string>
using namespace std;
/*
this指针本质: 一个指针常量 指针指向的对象是不能修改的 但是指针指向的内存存储的数值的是可以修改的
this指针: this指针指向被调用的成员函数所属的对象 *this解引用可以访问该对象本省
静态函数没有this指针,因为静态函数不属于某个对象
this指针是隐含没一个非静态成员函数内的指针
this指针不需要定义,直接使用就行
this指针的用途:
1.当形参和成员变量同名时,可以用this指针区分 解决名称冲突
2.在类的非静态成员函数中返回对象本省,使用return *this
*/
class Person
{
public:
Person(int age)
{
// this指针指向被调用的成员函数所属的对象
this->age = age;
}
// 引用指向本身内存 不用引用就是拷贝 拷贝指向的是另外一个内存
// 没有&就是创建新的对象了
Person &PersonAddAge(Person &p)
{
this->age = this->age + p.age;
return *this;
}
int age;
};
void test()
{
Person p(18);
cout << p.age << endl;
}
void AddAgeTest()
{
Person p1(10);
Person p2(110);
p2.PersonAddAge(p1).PersonAddAge(p1).PersonAddAge(p1); // 链式追加
cout << p1.age << " "
<< "p2.age is " << p2.age;
}
// 返回对象用*this
int main()
{
// test();
AddAgeTest();
return 0;
}
C++ this学习
最新推荐文章于 2024-04-25 12:18:13 发布