将常量对象作为“this”参数传递:限定符取消资格错误
在 C 中,将常量对象作为“this”参数传递给成员函数可能会导致“将‘const xxx’作为成员函数的‘this’参数传递会丢弃限定符”错误。出现这种情况是因为编译器考虑到非常量成员函数可能修改对象的可能性,而对于const对象是禁止这样做的。
问题分析
提供的代码中,集合中的对象存储为 const StudentT。在循环内访问成员函数 getId() 和 getName() 时,编译器会检测到此问题,因为对象是 const 并且成员函数未标记为 const。
Solution
要解决该错误,必须将 getId() 和 getName() 函数设置为 const:
int getId() const { return id; } string getName() const { return name; }
这允许在 const 对象上调用函数而不违反 const 规则。
附加说明
inline bool operator
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3