常函数:
1:成员函数后面加const 后我们成为这个函数为常函数
2:常函数内不可以修改成员属性
3:成员属性声明时加关键字mutable后 在常函数中就可以修改了。
常对象
1: 声明对象前加const称该对象为常对象
2:常对象只能调用常函数
示例:
#include
class Person
{
public:
//this指针的本质 是指针常量 指针的指向是不可以修改的
//const Person const this;
/在成员函数后面加const,修饰的是this指向,
让指针指向的值也不可以修改
若是需要修改则需要用到特殊变量mutable/
Preson()
{
}
void ShowPerson() const
{
this->m_b=100;//这个有特殊变量可以修改
// this->m_a=100;//这个没有特殊变量 添加完const this指针的指向变量也不可以修改
// this=NULL;//this指针是不可以修改指向的 但是可以修改变量
}
void show()
{
}
int m_a;
mutable int m_b;
};
void test1()
{
const Person p;//在对象前加const, 变为常对象 //前提是类中需要有构造函数。
p.m_a=100;//常对象也是只能修改带特殊变量的值
p.m_b=100;//m_b是特殊变量,在常对象下也可以修改
//常对象 只能调用常函数
p.ShowPerson();
// p.show();/常对象 不可以调用普通函数
// 因为普通函数可以修改属性*/
}
int main()
{
}
这里面有错误还需要检查。