在一些C++源码中经常见到const修饰的函数,这里的const与放的位置无关,也就是下面三种写法是等效的,只不过通常使用第一种写法,可以编写函数进行测试,这里的const虽然写在了函数的位置,其实是用来修饰隐藏的this指针,因为此时this指针是指向的是对象,也就是说this指向的对象不能被修改
void OpVar(int a, int b) const //1
void const OpVar(int a, int b) //2
const void OpVar(int a, int b) //3
// const写在什么位置没有关系
// const修饰的是谁?
// const修饰的不是形参
// const修饰的是this指针指向的内存空间,修饰的内存指针,因为有两个const
void OpVar(int a, int b) const // void OpVar(const Test *const this, int a, int b) const
{
// a = 100; // 正常
// this->a = 100; //报错 this 指针指向的内容是不可以更改的
}