Изменение значения переменной одного класса внутри другого
Мне нужно, чтобы метод одного класса менял значение переменной другого класса.
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 {...}