将 const 对象作为 'this' 参数传递:限定符不合格错误
在 C 中,将 const 对象作为 'this' 参数传递给成员函数可能会导致“将‘const xxx’作为成员函数的‘this’参数传递会丢弃限定符”错误。出现这种情况是因为编译器考虑到非 const 成员函数可能会修改对象,而 const 对象是禁止这样做的。
问题分析
提供的代码中,集合中的对象存储为 const StudentT。在循环内访问成员函数 getId() 和 getName() 时,编译器会检测到此问题,因为对象是 const 并且成员函数未标记为 const。
解决方案
要解决该错误,必须使用 getId() 和 getName() 函数const:
int getId() const { return id; } string getName() const { return name; }
这允许在 const 对象上调用函数而不违反 const 规则。
附加说明
inline bool operator< (const StudentT & s1, const StudentT & s2) { return s1.getId() < s2.getId(); }
以上是为什么将 Const 对象传递给非常量成员函数会导致 C 中的限定符取消资格错误?的详细内容。更多信息请关注PHP中文网其他相关文章!