常函数:
const修饰的成员函数被称为常函数,常函数不可修改成员属性‘,但是如果成员属性加上了mutable,那么在常函数中依旧可以修改’
往深一点理解就是,在没有加const以前,this指针是相当于一个指针常量,指针指向的值可以修改,但指向不可以修改,现在就相当于this.age=100,因为指针指向的值可以修改现在左值便可以被赋值,但当我们加了const之后,那就是指针指向的值以及指针的指向均不可以修改,所以这时候常函数里面的属性就不可以被修改了,但是在加了mutable这个关键字后的属性,就可以在常函数中被修改了
,如下图
常对象:
在创建对象前面加上const就是常对象了,常对象不可修改属性值,除了加了mutable关键字的属性,如下图
除此之外,只有常对象能调用常函数,普通对象可以调用普通函数以及常函数