一、this指针
(1)注意事项
①this指针指向被调用的成员函数所属的对象(谁调用就指谁)
②返回对象本身用*this
③由于this指针是编译器在编译阶段加上的形参,因此对于程序员来说,在编写非静态成员函数时不能显式声明名为this的形参,也不能修改this指针,而只能通过this去访问相应对象的数据成员
(2)示例代码
#include<iostream>
using namespace std;
class Person
{
public:
Person(int age)
{
this->age = age;
}
int age;
};
void test01()
{
Person p1(18);
cout << "p1的年龄为" << p1.age << endl;
}
int main()
{
test01();
system("pause");
return 0;
}
二、空指针访问成员函数
c++中空指针也可以调用成员函数,但要注意有没有用到this指针
(1) 示例代码
#include<iostream>
using namespace std;
class Person
{
public:
void showPersonAge()
{
//默认由this->m_Age,但此时的this没有对象实体,即为空值,所以无法访问会报错
//如何解决
if (this == NULL)
{
return;
}
cout << "age=" << this->m_Age << endl;
}
int m_Age;
};
void test01()
{
Person* p = NULL;
p->showPersonAge();
}
int main()
{
test01();
system("pause");
return 0;
}