C++成员函数中的const修饰符

在一些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 指针指向的内容是不可以更改的
}

你可能感兴趣的:(C-C++)