我是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
}
好吧,我懷疑一個簡單的解決。製作「員工」的本地副本當然是個問題。我希望我可以將多個答案標記爲已接受......但你們都得到了讚揚。謝謝!!! –