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

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日

悬赏问题

  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 qgcomp混合物线性模型分析的代码出现错误:Model aliasing occurred
  • ¥100 已有python代码,要求做成可执行程序,程序设计内容不多
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥15 小红薯封设备能解决的来
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答