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
对象上调用该函数时会报错。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界