const` 关键字位于函数签名的末尾
在 C++ 中,const 关键字可以应用于成员函数,表示该函数不会修改对象的成员变量。
const 出现在 operator->() 成员函数的末尾,这意味着该成员函数在调用时不会修改对象的任何成员变量。
如下:
node* operator->() const { return p; }
1. const 的作用
const关键字位于函数签名的末尾,表示这是一个常量成员函数。- 常量成员函数的主要特性是:它不能修改类的任何非
mutable的成员变量,并且只能调用类的其他const成员函数。
2. 为什么要加 const?
加上 const 的目的是允许该成员函数在一个常量对象上被调用。例如,如果对象是 const,那么只能调用 const 成员函数。
如果你不加 const,在常量对象上调用该成员函数时会出现编译错误。
3. 若不加 const 的问题
如果你没有在 operator->() 的末尾加上 const,你将无法在常量对象上调用它:
const Wrapper w(&n); // 常量对象
// 如果 operator->() 不是 const,下面这行代码会报错
std::cout << w->value << std::endl;
总结:
const成员函数表示函数不会修改对象的成员变量,因此可以在const对象上调用。- 在
operator->()函数末尾加const,允许你在const对象上使用箭头操作符来访问封装的指针。
如果不加const,在const对象上调用该函数时会报错。

浙公网安备 33010602011771号