c++中cout的问题
下面是代码:#include<iostream>usingnamespacestd;classx{inta;public:x():a(1){}intget_a(){ret...
下面是代码:
#include <iostream>
using namespace std;
class x
{
int a;
public:
x():a(1){}
int get_a()
{
return a;
}
int f()
{
++a;
return a;
}
};
class y
{
public:
int a;
y():a(1){}
int f()
{
++a;
return a;
}
};
int main()
{
x t;
y s;
//第一组
cout << t.get_a() << t.f() << endl;
cout << t.f() << t.get_a() << "\n***********" << endl;
//第二组
cout << s.a << s.f() << endl;
cout << s.f() << s.a << "\n***********" << endl;
//第三组
int i=1;
cout << i<< ++i << endl;
cout << ++i<< i << endl;
return 0;
}
按照我的预期,本来以为第一组应该会输出12和33,结果发现输出的是22和32 。
于是又写了第二组,我觉得应该会与第一组结果一样,结果输出的是22和33,又和我的预期不一样。
然后又写了第三组,结果发现这一组的输出12和33,和我一开始的预期是一样的,但是和前面的似乎又不一样。
又知道问题出在哪里的回答一下,谢谢。 展开
#include <iostream>
using namespace std;
class x
{
int a;
public:
x():a(1){}
int get_a()
{
return a;
}
int f()
{
++a;
return a;
}
};
class y
{
public:
int a;
y():a(1){}
int f()
{
++a;
return a;
}
};
int main()
{
x t;
y s;
//第一组
cout << t.get_a() << t.f() << endl;
cout << t.f() << t.get_a() << "\n***********" << endl;
//第二组
cout << s.a << s.f() << endl;
cout << s.f() << s.a << "\n***********" << endl;
//第三组
int i=1;
cout << i<< ++i << endl;
cout << ++i<< i << endl;
return 0;
}
按照我的预期,本来以为第一组应该会输出12和33,结果发现输出的是22和32 。
于是又写了第二组,我觉得应该会与第一组结果一样,结果输出的是22和33,又和我的预期不一样。
然后又写了第三组,结果发现这一组的输出12和33,和我一开始的预期是一样的,但是和前面的似乎又不一样。
又知道问题出在哪里的回答一下,谢谢。 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询