Изменение значения переменной одного класса внутри другого

Мне нужно, чтобы метод одного класса менял значение переменной другого класса.


using namespace std;

class A{
    private:
        int a = 100;
        
    public:
        friend class B;
};

class B{

    
    public:
        void changeA(int a, A obj){
            obj.a = a;
        }
        
        void display(A obj){
            cout<<obj.a<<endl;
        }
};


int main(void){
    A a;
    B b;
    b.display(a);
    b.changeA(1, a);
    b.display(a);
}```


Я пробовал использвать гетеры и сетеры, но результат тот же

Ответы (1 шт):

Автор решения: Zhihar

хотите менять объекты - передавайте их по ссылке

void changeA(int a, A& obj){

P.S.

и кстати используйте принцип минимальной необходимости - код должен делать ровно то, что вы от него хотите и ничего большего - это поможет в будущем избежать ошибок

void changeA(const int a, A& obj) {...}
void display(const A& obj) const {...}
→ Ссылка