C++ const(一):成员函数

mac2025-04-26  5

编写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 挪到同一行,就成了现在这样子了。

最新回复(0)