常函数
const修饰成员函数
- 常函数:
1、成员函数后加const后我们称这个函数为常函数。
2、常函数不可以修改成员属性。
3、成员属性声明时加关键字mutable后,在常函数中依然可以修改。 - 常对象:
1、声明对象前加const称该对象为长对象。
2、常对象只能调用常函数。
#include <iostream>
using namespace std;
class person {
public:
void personshow() const {//常函数
// this->m_age = 100;常函数中不可修改
this->n_age = 200; //有mutable关键字可以修改。
// this = NULL;this指针本质指针常量,明确指向后不可修改。
}
void func(){}//普通函数
int m_age;
mutable int n_age;//加上关键字后可在常函数中修改其值。
};
void test01() {
person p1;
p1.personshow();
}
void test02() {
const person p2;//常对象
// p2.m_age = 100;不可以修改
p2.n_age = 200;//有mutable关键字可修改
p2.personshow();//可以调用,常对象可以调用常函数
// p2.func();不可调用,常对象不能调用普通成员函数,因为普通成员函数可以修改成员属性
}
int main(void)
{
test01();
test02();
return 0;
}