大部分来自从stack overflow上搜集的内容,外加C++ primer的一些内容
1.const成员函数:
const成员函数中不能对成员变量进行改变,但是被mutable修饰的成员变量除外(mutable只能修饰非static数据成员)。而且注意哦,const只是对其所属类的成员变量起作用,函数里还是可以修改其形参的!const类型对象只能调用类的const成员函数而不能调用非const类型的。
2.static成员函数
static成员函数除了不能是const的之外,也不能是virtual的。
3.和this指针的关系
this VS const function
在普通非成员函数里的this指针,其自身的值不能修改,但是可以修改成员变量的值,而在const function里的this pointer,就化身为const A * const的。
this VS static function
static成员函数里没有this指针!
4.const和static的关系
static成员函数不能是const的,因为static成员函数不属于任何对象的组成部分,而将函数声明为const的,就代表不会修改其所属对象,所以有冲突。