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

++问题,急求大声解答

 # include <iostream>

 using namespace std;

   class Coordinate 

{

    public:

    Coordinate (int x,int y);

    int getX ();

    int getY ();

    Coordinate operator++(int);

    private:

    int m_iX;

    int m_iY;

};

Coordinate ::Coordinate (int x,int y)

 {

  m_iX=x;

  m_iY=y;

 }

int Coordinate ::getX()

{

return m_iX;

}

int Coordinate ::getY ()

{

return m_iY;

}

Coordinate Coordinate:: operator ++(int)

{

Coordinate old(*this);

m_iX++;

m_iY++;

return old;

}

int main ()

{

Coordinate c(1,3);

cout<<(c++).getX()<<"  "<<(c++).getY()<<endl;

}

为什么m_iX输出结果是2,尔m_iY是三额http://img1.sycdn.imooc.com//594cd06b000181cd01040037.jpg

正在回答

2 回答

C++默认右序进栈,所以(c++).getX(),(c++).getY()在同一语句时先执行右边的c++.getY,得到3,然后左边的getX,得到2,如果将getX,getY放两条语句就不会出现这种情况了http://blog.csdn.net/zhanghenglei/article/details/7320291,参考这个

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

我测试了一下输出结果是 1 4

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

举报

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

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

进入课程

++问题,急求大声解答

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