关于++a = a++
虽然之前似乎看过一些文章,现在又糊涂了,如下:
面试时遇到的题目:
以下四种情况有没问题,若没有,结果一般为多少?
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结果是不一样的?
[解决办法]
http://bbs.csdn.net/topics/370153775
[解决办法]
楼主你已经发了58个贴了。。。
[解决办法]
LZ请看置顶