SerendipityMIT 2022-06-29 00:19 采纳率: 42.9%
浏览 35
已结题

c++如何实现关系运算符==的重载使之可以**连续使用**?

问题

c++如何实现关系运算符==的重载使之可以连续使用
定义一个点类:

class Point
{
private://定义两个数表示一个点的坐标
    float x;
    float y;
public://构造函数
    Point(float x,float y)
    {
        this->x = x;
        this->y = y;
    }
    //重载运算符==(双目)
    Point operator ==(Point p02)
    {
        if (this->x = p02.x && this->y == p02.y)
        {
            return p02;
        }
    }
};

main函数如下:

int main()
{
    //这样写我是可以理解的
     Point p1 = new Point(3,4);
     Point p1 = new Point(3,4);
     Point p1 = new Point(3,4);
    if(p1 == p2)
    {
        cout<<"true"<<endl;
    }
    //但是这样写就会报错
    if(p1 == p2 == p3)
    {
        cout<<"true"<<endl;
    }
    //我知道是因为==返回的bool类型所以报错,但是应该怎么改才可以让这个代码正确运行呢?求助各位
    delete p1;
    delete p2;
    delete p3;
}
  • 写回答

2条回答 默认 最新

  • it_hao528 2022-06-29 00:31
    关注

    修改成如下格式即可:

    
    if(p1 == p2 && p2 == p3)
    {
      cout<<"true"<<endl;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月20日
  • 已采纳回答 10月12日
  • 创建了问题 6月29日