常函数:
-
成员函数后加const后我们称为这个函数为常函数
-
常函数内不可以修改成员属性
-
成员属性声明时加关键字mutable后,在常函数中依然可以修改
常对象:
-
声明对象前加const称该对象为常对象
-
常对象只能调用常函数
#include"cf_12.h"
class PersonL
{
public:
PersonL()
{
a = 0;
b = 0;
}
~PersonL() {};
int a;
mutable int b;// 加mutable 修饰符后 都可以调用;
//this指针的本质是一个指针常量,指针的指向不可修改
//如果想让指针指向的值也不可以修改,需要声明常函数
void showPerson() const//
{
//const修饰成员函数,表示指针指向的内存空间的数据不能修改,除了mutable修饰的变量
//this->a = 100;
this->b = 100;
}
// 非常函数
int unConstFunc()
{
return 0;
}
};
void cf_12_test_01()
{
const PersonL p1;// 创建常对象
p1.showPerson();// 常对象仅可调用常函数,不能调用非常函数
// p1.unConstFunc(); // 创建非 常函数,常对象不能对用
}