我是C++新手,所以请原谅noob问题。在我的程序中,我通过引用将一个“Employee”对象向量传递给一个函数,这个函数在向量中的每个对象上调用一个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
}
好吧,我怀疑一个简单的解决。制作“员工”的本地副本当然是个问题。我希望我可以将多个答案标记为已接受......但你们都得到了赞扬。谢谢!!! –