wanmeiluck123 2014年01月10日
关于++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结果是不一样的?
...全文
47 点赞 收藏 4
写回复
4 条回复

还没有回复,快来抢沙发~

发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告