首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于++a = a++,该如何解决

2014-01-12 
关于++a a++虽然之前似乎看过一些文章,现在又糊涂了,如下:面试时遇到的题目: 以下四种情况有没问题,若没

关于++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请看置顶

热点排行