#include<bits/stdc++.h> using namespace std; //常函数 class Person{ public: Person() { m_A = 0; m_B = 0; } //this指针的本质是指针常量 指针的指向是不可以修改的 //const Person *const this //在成员函数后面加const,修饰的是this指针,让指针指向的值也不可以修改 void showPerson() const{ //m_A=100;报错,不可以修改 m_B=100; cout<<m_B<<endl; } void func(){ } int m_A; mutable int m_B; }; //常对象 void test02() { const Person p;//在对象前加const,变成常对象,常对象必须初始化 //const Person p(p);这种不用初始化 //p.m_A=100; p.m_B=100;//m_B是特殊值,在常对象下也可以修改 //常对象只能调用常函数 p.showPerson(); //p.func(); } int main() { //const修饰成员函数 //常函数 //成员函数后加const后我们称这个函数为常函数 //常函数内不可以修改成员属性 //成员属性声明时加关键字mutable后,在常函数中依然可以修改 //常对象 //声明对象前加const称改对象为常对象 //常对象只能调用常函数 Person p; cout<<"sizeof"<<sizeof(p)<<endl; cout<<"p.m_B= "<<p.m_B<<endl; p.showPerson(); cout<<"p.m_B= "<<p.m_B<<endl; test02(); return 0; }