关于this:
- this 指针的本质 是指针常量 指针的指向是不可以修改的,但是值可以修改
- 在成员函数后面加const,修饰的是this指向,让指针的指向的值和指向都不能发生改变
常对象只能调用常函数
#include<iostream>
using namespace std;
#include<string>
class Person
{
public:
//this 指针的本质 是指针常量 指针的指向是不可以修改的,但是值可以修改,相当于Person *const this;
//在成员函数后面加const,修饰的是this指向,让指针的指向的值和指向都不能发生改变,相当于const Person *const this;
void showPerson() const//常函数:这里的const相当于const Person *const this;指针的值和指向都不能修改
{
//this->m_Age = 100;//this指向的值不能修改
//this = NULL;//this指针不可以修改指针的指向
}
int m_Age = 9;
mutable int m_B = 8;//特殊声明,即使在常函数中,也可以修改值
};
void test01()
{
Person p ;
p.showPerson();
}
void test02()
{
//常对象只能调用常函数
const Person q;
//p.m_Age=100;
q.m_B = 100;
}
int main()
{
test01();
return 0;
}