我试图重载'bool operator<(const Vertex&);,函数主体如下所示:
bool Vertex::operator <(const Vertex& other){
//incomplete, just a placeholder for now
if(px != other.px){
return px < other.px;
}
return false;
}
我得到的错误是:
/usr/include/c++/4.7/bits/stl_function.h:237:22: error: passing ‘const Vertex’ as ‘this’ argument of ‘const bool Vertex::operator<(Vertex)’ discards qualifiers [-fpermissive]
最佳答案
由于operator<
重载不会修改this
指向的对象,因此应将其标记为const
成员函数。也就是说,对于声明,在末尾添加const
:
class Vertex {
// ...
bool operator<(const Vertex& other) const;
// ...
};
关于c++ - 重载 map 的<<运算符时遇到麻烦,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16408996/