#include <iostream>
#include <string>
using namespace std;
class Person
{
private:
string name;
public:
Person(string _name, int _money) : name(_name), money(_money) {}
int money;
int get_money() {return money; }
};
class Company
{
private:
string name;
public:
Company(string _name) : name(_name) {}
void pay_salary(Person p, int amount);
};
void Company::pay_salary(Person p, int amount)
{
p.money += amount;
}
int main()
{
Person bob("Bob", 0);
Company c("C");
cout << bob.get_money() << endl; // prints 0
c.pay_salary(bob,100);
cout << bob.get_money() << endl; // prints 0
return 0;
}
В этом коде (упрощенном иллюстрировании моей проблемы) Я хочу получить доступ к переменной-члену-члену внутри компании, чтобы увеличить деньги Лица. Однако, p.money + = количество, похоже, работает только локально и не изменяет стоимость денег для конкретного человека в основном.Доступ к изменяющейся переменной элемента в другом классе
Каковы некоторые методы выполнения этой работы? Можно ли сделать деньги защищенной переменной-членом?
Google для звонков по ссылке и по телефону! –
'void Company :: pay_salary (Person & p, int amount)' – stark
Чтобы ответить на ваш вопрос: измените 'void Company :: pay_salary (Person p, int amount)' на 'void Company :: pay_salary (Person & p, int amount) '. И для прототипа, конечно, то же самое. –