1、常函数 void func() const {} 常函数
2、常函数 修饰是 this指针 const Type * const this
3、常函数 不能修饰this指针指向的值
4、常对象 在对象前面加上const修饰 const Person p1
5、常对象不可以调用普通的成员函数,可以调用常函数。
6、用multable关键字修饰的成员变量在常函数中可以修改。
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
class Person
{
public:
Person()
{
//构造中修改属性
//this指针永远指向本体
//const Person * const this
this->m_A = 0;
this->m_B = 0;
}
void showInfo() const //常函数,不允许修改指针指向的值
{
this->m_B = 1000;
cout << "m_A=" << this->m_A << endl;
cout << "m_B=" << this->m_B << endl;
}
void show2()
{
m_A = 100;
}
int m_A;
mutable int m_B; //就算是常函数也执意要修改
};
void test01()
{
Person p1;
p1.showInfo();
//常对象,不允许修改对象属性
const Person p2;
//p2.m_A = 100; 报错
cout << p2.m_A << endl;
//p2.show2();//常对象 不可以调用普通成员函数
p2.showInfo();//常对象 可以调用常函数
}
int main()
{
test01();
system("pause");
return 0;
}