关于++a = a++

wanmeiluck123 2014-01-10 12:39:15
虽然之前似乎看过一些文章,现在又糊涂了,如下:
面试时遇到的题目:
以下四种情况有没问题,若没有,结果一般为多少?
int a = 6;
++a = a++;
++a = ++a;

a++ = ++a;
++a = a++;

这是我后面自己写的一个Int,但结果在vs2008上与系统的int结果不一样。
#include <iostream>
using namespace std;

class Int
{
public:
friend ostream& operator<<(ostream&, const Int & );
Int(int i){this->i = i;}

Int(const Int& obj)
{
i = obj.i;
}

Int& operator++()
{
++i;
cout << "front ++" << endl;
return *this;
}

Int operator++(int)
{
Int obj(*this);
++*this;
cout << "back ++" << endl;
return obj;
}

private:
int i;
};


ostream& operator<<(ostream& os, const Int & obj)
{
os << obj.i << endl;
return os;
}

int main(void)
{
Int m = 6;

++m = m++; //6 //最后是=,将复制出来的值赋给变量m重新变成了6
////++m = ++m; //7
//m++ = ++m; //8
//m
//cout <<m << endl;

int a = 6;
++a = a++;//8
cout << a<<endl;
cout << m<<endl;
return 0;
}


为什么我自己写的Int与系统的int结果是不一样的?
...全文
106 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
vipcxj 2014-01-10
  • 打赏
  • 举报
回复
LZ请看置顶
wanmeiluck123 2014-01-10
  • 打赏
  • 举报
回复
对于运算符的优先级与编译器的求值顺序这两者还是比较混乱,能否指教一下?
derekrose 2014-01-10
  • 打赏
  • 举报
回复
楼主你已经发了58个贴了。。。
iamnobody 2014-01-10
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/370153775

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧