this指针
this指针是隐含每一个非静态成员函数内的一种指针
this指针不需要定义,直接使用即可,应用场景:
- 当形参和成员变量同名时,可用this指针来区分
- 类的非静态成员函数中返回对象本身,return *this
this指针的本质是一个指针常量,指针的指向不可修改
#include<iostream>
#include <string>
using namespace std;
class Person
{
public:
Person(int age)
{
//当重名时用this指针来区分
this->age = age;
}
Person& PersonAddAge(Person p1)
{
this->age += p1.age;
return *this; //返回对象本身
}
int age;
};
void test01()
{
Person p1(10);
//cout << p1.age << endl;
Person p2(10);
p2.PersonAddAge(p1).PersonAddAge(p2);
cout << p2.age << endl;
}
int main()
{
test01();
}
#include<iostream>
#include <string>
using namespace std;
class Person
{
public:
void ShowAge()
{
//防止空指针的调用,增加程序的健壮性
if (this == NULL)
{
return;
}
cout << this->m_Age << endl; //属性m_Age前隐含了一个this指针
}
int m_Age;
};
void test01()
{
Person* p1 = NULL;
p1->ShowAge();
}
int main()
{
test01();
}