C++ 错误:传递';常数T';as';这';参数';布尔T::运算符<;(T) &x27;丢弃限定符 #包括 #包括 #包括 类MyData { 公众: 国际博物馆; bool操作符

C++ 错误:传递';常数T';as';这';参数';布尔T::运算符<;(T) &x27;丢弃限定符 #包括 #包括 #包括 类MyData { 公众: 国际博物馆; bool操作符,c++,class,sorting,vector,C++,Class,Sorting,Vector,一个操作符你应该用常量操作数编写一个操作符。看一看。比较操作符将在类实例的常量引用上调用,因此它必须声明为常量成员函数 通过常量引用而不是通过值传递参数也是一种很好的做法,尽管这对简单类没有多大影响: bool operator<(MyData const& rhs) const { return m_iData < rhs.m_iData; } bool操作符成功了,谢谢。关于引用的提示也很好。我没有想到。请将标题中的--更改为t。我很难理解这个问题。(不过,我不

一个
操作符你应该用
常量操作数编写一个操作符。看一看。

比较操作符将在类实例的常量引用上调用,因此它必须声明为常量成员函数

通过常量引用而不是通过值传递参数也是一种很好的做法,尽管这对简单类没有多大影响:

    bool operator<(MyData const& rhs) const { return m_iData < rhs.m_iData; }

bool操作符成功了,谢谢。关于引用的提示也很好。我没有想到。请将标题中的
--
更改为
t
。我很难理解这个问题。(不过,我不知道为什么我在这个问题上没有编辑按钮…)
error: passing 'const MyData' as 'this' argument of 'bool MyData::operator<(MyData)'
discards qualifiers
    bool operator<(MyData const& rhs) const { return m_iData < rhs.m_iData; }
bool operator<(const MyData & rhs) const { return m_iData < rhs.m_iData; }
//             ^^^^^^^^^^^^^^      ^^^^^
//             if you like         mandatory