#include<iostream>
using namespace std;
class Person
{
public:
void fun() const //成员函数后加const为常函数
{
this->a = 100;//加关键字mutable后,在常函数中依然可以修改
// this->b = 100; 常函数内不可修改成员属性
}
void fun2()
{
b = 100;
}
int b;
int mutable a;//加关键字mutable后,在常函数中依然可以修改
};
void test02()
{
const Person p1;//声明对象前加const称该对象为常对象
p1.fun();//常对象只能调用常函数
//p1.fun2();常对象只能调用常函数
}
关于this指针,本质上为一个指针常量(* const p),指针所指地址不可修改,可通过指针修改变量的值
ps:常量指针:本质为一个指针,可以指向任意变量,但不能通过指针修改变量的值(引用const * p)