粥粥528 2022-02-09 18:47 采纳率: 84%
浏览 25
已结题

为啥y的值总会多一呢?

#include <iostream>
using namespace std;
class point
{
   int x,y;
public:
    point(){};
    point(int nx,int ny)
    {
        x=nx;
        y=ny;
    }
    void show()
    {
        cout<<"("<<x<<","<<y<<")"<<endl;
    }
    void move_(int a,int b)
    {
        x+=a;
        y+=b;
    }
    void move_(point &a)
    {
        x=a.x;
        y=a.y;
    }
    void operator==(point a)
    {
        if((x==a.x)&&(y==a.y))
            cout<<"是同一点"<<endl;
        else
            cout<<"不是同一点"<<endl;
    }
    void operator+=(point &a)
    {
        x+=a.x;y+=a.y;
    }
    point operator+(point a)
    {
        point add;
        add.x=x+a.x;
        add.y=y+a.y;
        return add;
    }
    void operator++()
    {
       x++;
       y++;
    }
    void operator++(int a=0)
    {
        x++;
        y++;
    }
};
int main()
{
    int x1,x2,y1,y2;
    cin>>x1>>y1>>x2>>y2;
    point a(x1,y2),b(x2,y2);
    a==b;
    a+=b;
    a.show();
    b.show();
    a=a+b;
    a.show();
    a++;
    a.show();
    ++a;
    a.show();
}

输入:
1 1
2 2
理想输出:
不是同一点
(3,3)
(2,2)
(5,5)
(6,6)
(7,7)

  • 写回答

1条回答 默认 最新

  • _GX_ 2022-02-09 19:12
    关注

    帮你修改好了

    #include <iostream>
    
    using namespace std;
    
    class point
    {
        int x, y;
    
    public:
        point() : x(0), y(0){};
        point(int nx, int ny)
        {
            x = nx;
            y = ny;
        }
        void show()
        {
            cout << "(" << x << "," << y << ")" << endl;
        }
        void move_(int a, int b)
        {
            x += a;
            y += b;
        }
        void move_(point &a)
        {
            x += a.x;
            y += a.y;
        }
        bool operator==(point a) const
        {
            return x == a.x && y == a.y;
        }
        point &operator+=(point &a)
        {
            x += a.x;
            y += a.y;
            return *this;
        }
        point operator+(point a)
        {
            point add = *this;
            add.x = x + a.x;
            add.y = y + a.y;
            return add;
        }
        point &operator++()
        {
            x++;
            y++;
            return *this;
        }
        point operator++(int)
        {
            point t = *this;
            x++;
            y++;
            return t;
        }
    };
    
    int main()
    {
        int x1, x2, y1, y2;
        cin >> x1 >> y1 >> x2 >> y2;
        point a(x1, y1), b(x2, y2);
        if (a == b)
            cout << "是同一点" << endl;
        else
            cout << "不是同一点" << endl;
        a += b;
        a.show();
        b.show();
        a = a + b;
        a.show();
        a++;
        a.show();
        ++a;
        a.show();
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月9日
  • 已采纳回答 5月1日
  • 创建了问题 2月9日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境