//4.3.4 const修饰成员函数 //常函数: //⚪成员函数后加const后我们称为这个函数为常数 //⚪常含数内不可以修改成员属性 //⚪成员属性声明时加关键字mutable后,在长函数中依然可以修改 //常对象: //⚪声明对象前加const城改对象为常对象 //⚪常对象只能调用常含数 #include class Person { public: //this指针的本质 是指针常量 指针的指向是不可修改的 //const Person * const this; //在成员函数后面加const,修饰的是this指向,让指针指向的值也不可以修改 void showPerson() const { this->m_B = 100; //this->m_A = 100; //this = NULL; //this指针不可以修改指针的指向的 } void func() { m_A = 100; } int m_A; mutable int m_B; //特殊变量,即使在常含数中,也可以修改这个量,加关键字mutable }; void test01() { Person p; p.showPerson(); } void test02() { const Person p; //在常对象前加const,变为常对象 //p.m_A = 100; p.m_B = 100; //m_B 是特殊变量,即使在常函数中,也可以修改这个值,加关键字mutable //常对象只能调用常含数 p.showPerson(); //p.func(); //常对象不可以调用普通成员函数,因为普通成员函数可以修改属性 } int main() { system("pause"); return 0; }