سلام.
یک سوال داشتم .
به نظر من خروجی این برنامه 11 باید باشه :
#include <iostream>
using namespace std; class A { public: A() { a.a = a.b = 1; } struct { int a, b; } a; int b(void); }; int A::b(void) { int x = a.a; a.a = a.b; a.b = x; return x; }; int main(void) {
A a; a.a.a = 0; a.b(); cout << a.b()<< a.a.b << endl;
system("pause");
return 0;
}
اما خروجی واقعیش 10 هست ! چرا میگه تو a.a.b صفر هست ؟
حالا اگر به جای این دستور :
cout << a.b()<< a.a.b << endl;
این دستور رو بنویسیم :
cout << a.b();cout << a.a.b << endl;
خروجی برنامه 11 میشه . میشه راهنمایی کنید چرا اینجوریه ؟
ممنون .