编写class的时候,成员函数有的后面加const关键字,表示是const成员函数。如
class Test {
int state
;
public:
bool testState(int stateX
) const;
};
意思是说这个隐含的this指向的东西是const的,成员函数不能修改它。这个语法看起来比较突兀。为什么采用这种语法呢?这要追溯到最古老的C语言时代。那时候,函数的参数说明是写在外面的:
main(argc
, argv
)
int argc
;
char *argv
[];
{
...
}
所以上面的写法相当于这样写:
bool testState(int stateX
)
const Test
*this;
这和最早的C语言一致。把this指针隐藏掉,再把const 挪到同一行,就成了现在这样子了。