遇到重载问题 operator<
.我正在尝试重载 operator<
这样我就可以对我的 Line2D
进行排序基于 pt1
的对象的 x
.但是我在弄清楚如何声明函数时遇到了麻烦。
我收到错误:
object has type qualifiers that are not compatible with the member function "Point2D::getX"
.
我尝试过的:删除 const
, 放 Point2D &l2dobj
相反。
class Line2D
{
private:
Point2D pt1;
Point2D pt2;
public:
bool operator<( const Line2D &l2dobj)
{
return (pt1.getX() < l2dobj.pt1.getX());
}
}
class Point2D
{
protected:
int x;
int y;
public:
int getX();
int getY();
}
最佳答案
Point2D::getX 不接受 const 实例,当它是 const 引用时,您不能将其应用于 l2dobj ,将 getX(和先验的 getY)更改为:
class Point2D
{
protected:
int x;
int y;
public:
int getX() const;
int getY() const;
};
作为一般方法,声明方法const越多越好,它们的参数也一样
关于c++ - 重载运算符 < 包含类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54734582/