Я новичок в C++, поэтому, пожалуйста, простите вопрос о noob. В моей программе я передаю вектор объектов «Сотрудник» в функцию по ссылке, которая вызывает функцию члена Employee для каждого объекта в векторе, чтобы повысить «зарплату» на «r» процентов (в данном случае 2 процента). Я проверил, что это происходит путем регистрации звонка (зарплата изменяется внутри функции), но изменения не сохраняются ... когда я снова печатаю объекты Employee, зарплаты остаются неизменными. Цените любую помощь!Передача вектора по ссылке на функцию, но изменение не сохраняется
// main.cpp
void raiseAllBy2Percent(vector<Employee> &v)
{
for (int i = 0; i < v.size(); i++)
{
Employee e = v[i];
e.salaryRaise(2);
}
}
// Employee.cpp
void Employee::salaryRaise(double r)
{
cout << "**salaryRaise called";
_salary += (r/100 * _salary);
cout << "**new salary: " << _salary; // This logs with the change as expected
}
Хорошо, как я подозревал, простое исправление. Естественно, создание локальной копии «Сотрудника» было проблемой. Хотел бы я отметить несколько ответов, как принято ... но вы все получили upvotes. Благодаря!!! –