//常函数:
//成员函数后加const,我们称这个函数为常函数
//常函数中的成员属性不可以修改
//在成员属性前加关键字mutable则可以修改
//常对象:
//在声明对象前加const,我们称这个对象为常对象
//常对象只能调用常函数
#include<iostream>
using namespace std;
class person {
public://常函数
void ShowPerson() const{
//this->m_a = 100;//常函数中的值也不可以改变
//this=NULL;this指向的对象不可以改变,但是只可以改变
m_b = 200;
}
void func() {
m_a = 300;
}
int m_a;
mutable int m_b;//加特殊关键字mutable则可以修改
};
void test04_1() {
person p;
p.ShowPerson();
}//常对象
void test04_2() {
const person p;
p.m_b = 100;
//p.func();//常对象只能调用常函数,因为普通函数中可以修改
//成员属性的值,但是常对象不能修改属性的值,产生矛盾
}
int main() {
test04_1();
test04_2();
return 0;
}