Por que o valor privado do obj pode ser alterado por instância de classe?
#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 é uma instância deA classe, com um valor privado chamadovalor, mas por que esse valor privado pode ser alterado? É essa a lista de parâmetros incluída no escopo da classe?