#include<iostream>
using namespace std;
class A
{
private:
int value;
public:
A(int init):value(init){}
void changevalue(A &a){a.value = 100;}//why a's value can be changed?
void printvalue(){cout << value << endl;}
};
int main(int argc , char *argv[])
{
A a(2);
A b(3);
a.changevalue(b);
b.printvalue();
return 0;
}
aはvalueという名前のプライベート値を持つAクラスのインスタンスですが、なぜこのプライベート値を変更できるのでしょうか。それはクラスのスコープに含まれているパラメータリストですか?