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

一元运算符重载 后置++

为什么我 cout<<(coor1++).getX(); 输出的是-858993460, 但是这样 coor++; cout<<coor1.getX(); 输出的就是2.

正在回答

2 回答

定义后++时不再需要使用&  此时返回值是一个对象 可以参考上一节课程 //Coordinate operator++(int)

声明时也是

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

主函数

#include <iostream>

#include "Coordinate.h"

using namespace std;

int main()

{

Coordinate coor1(1, 3);

cout << coor1.getX()<<","<<coor1.getY() << endl;

//cout << (coor1++).getX();这样的输出是-858993460

coor1++;

cout << coor1.getX() << "," << coor1.getY() << endl;

system("pause");

return 0;

}

定义

#include "Coordinate.h"

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);

this->m_iX++;

this->m_iY++;

return old;

}

声明  

#include <iostream>

using namespace std;

class Coordinate

{

public:

Coordinate(int ,int);

Coordinate &operator++(int);

int getX();

int getY();

private:

int m_iX;

int m_iY;

};


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

举报

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

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

进入课程

一元运算符重载 后置++

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