为了账号安全,请及时绑定邮箱和手机立即绑定

求教哪里错了


#include <iostream>

using namespace std;


/**

 * 定义Coordinate类

 * 数据成员:m_iX,m_iY

 * 成员函数:构造函数

 * 重载--运算符,重载+运算符

 */

class Coordinate;

class Coordinate

{

public:

    Coordinate(int x, int y)

{

m_iX = x;

m_iY = y;

}

    // 前置--运算符重载

Coordinate &operator--()

{

    m_iX--;

m_iY--;

return *this;

}

    

    

    

    // 后置--运算符重载

     Coordinate operator--(int)

{

Coordinate temp(*this);

temp.m_iX=m_iX++;

temp.m_iY=m_iY++;

return temp;

}

    

    

    

    

    // +号运算符重载

Coordinate operator+(Coordinate a)

{

 Coordinate b(0,0);

b.m_iX=a.m_iX+this->m_iX;

b.m_iY=a.m_iY+m_iY;

return b;

}

    

    


public:

int m_iX;

int m_iY;

};


int main(void)

{

Coordinate coor1(1, 3);

Coordinate coor2(2, 4);

Coordinate coor3(0, 0);


coor1--;

--coor2;

coor3 = coor1 + coor2;


cout << coor3.m_iX << endl;

cout << coor3.m_iY << endl;


return 0;

}


正在回答

2 回答

为什么不能直接用 old.m_iX--,old.m_iY-- 呢?

0 回复 有任何疑惑可以回复我~

class Coordinate;

class Coordinate

多一个

     Coordinate operator--(int)

{

Coordinate temp(*this);

temp.m_iX=m_iX++;

temp.m_iY=m_iY++;

return temp;

}


 Coordinate operator--(int)

{

   Coordinate old(*this);

   this->m_iX--;

   this->m_iY--;

   return old;

}


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之模板篇
  • 参与学习       91156    人
  • 解答问题       318    个

本C++教程力求即学即会,所有知识以实践方式讲解到操作层面

进入课程

求教哪里错了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信