问题:想知道题目中a自增或者自减后的值为什么没有保留
答案为什么不是
A::a=5
display1:a=6
display2:a=5
A::a=5
#include<iostream>
using namespace std;
class A
{ public :
A() { a = 5; }
void printa() { cout << "A:a = " << a << endl; }
private :
int a;
friend class B;
};
class B
{ public:
void display1( A t )
{ t.a++; cout << "display1:a = " << t.a << endl; };
void display2( A t )
{ t.a--; cout << "display2:a = " << t.a << endl; };
};
int main()
{ A obj1;
B obj2;
obj1.printa();
obj2.display1( obj1 );
obj2.display2( obj1 );
obj1.printa();
}
错误:“a”为“A”中的私有属性,无法直接访问。此错误发生在主函数的第25行,当obj2尝试访问obj1的“a”属性时。