1.this指针指向被调用的成员函数 所属的对象(哪个对象调用成员函数,this指针就指向谁)
2.this指针可以解决名称冲突问题(但一般要注意命名规范,尽量避免)
3.this指针隐藏在每个成员函数中,*this就是本体
4.注意链式编程思想
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
class Person
{
public:
Person(int age)
{
//用途1:可以解决名称冲突
this->age = age;
}
//this指针 隐式加在每个成员函数中
bool compareAge(Person &p)
{
if (this->age == p.age)
{
return true;
}
else
{
return false;
}
}
Person& personAddPerson(Person &p) //当返回值是Person时,会调用拷贝函数是浅拷贝,当返回值类型是Person&时为深拷贝
{
this->age += p.age;
return *this; //*this就是本体
}
int age;
};
void test01()
{
//this指针 指向 被调用的成员函数 所属的对象
Person p1(10);
cout << "p1的年龄是" << p1.age << endl;
Person p2(10);
bool ret = p1.compareAge(p2);
if (ret)
{
cout << "p1与p2年龄相等" << endl;
}
p1.personAddPerson(p2).personAddPerson(p2).personAddPerson(p2); //链式编程 思想
cout << "p1的年龄为:" << p1.age << endl;
}
int main()
{
test01();
system("pause");
return EXIT_SUCCESS;
}