粥粥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日

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集