You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++ getStringId成员函数末尾第二个const的作用是什么

C++ 成员函数尾部const语义说明

你给出的两段代码分别是类的成员变量声明,以及对应的getter成员函数实现:

// 头文件成员变量声明
std::string m_StrId;

// 源文件成员函数实现
const std::string& getStringId() const { return  m_StrId; }

你问的参数列表后的第二个const,作用有两个核心点:

  • 限定该成员函数为只读成员函数,函数内部不允许修改类的任意非静态成员变量,如果你在该函数内尝试修改m_StrId或者其他非静态成员,编译器会直接抛出错误,从语法层面保证函数不会修改类实例的状态。
  • 支持const类实例调用该函数:如果某个类的实例被声明为const类型,它只能调用带尾部const标识的成员函数,未加该标识的普通成员函数会被编译器禁止调用,避免const实例的状态被意外修改。

另外补充说明,该函数返回值用const std::string&是和尾部const的语义完全匹配的:返回内部成员的const引用,避免外部调用者通过返回值直接修改类内部的m_StrId变量,进一步保证类内部状态的安全性。

内容的提问来源于stack exchange,提问作者badri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 07:03:01