在C 中更改类中的变量值

changing variable values in classes in C++

本文关键字:变量值      更新时间:2023-10-16

我似乎在使用C 的类中更改变量有问题。

int main() {
ofstream file;
file.open("example.txt");
Job serverJob("Server", "FOH");
TimeSlot slot1(Time(12, 30), Time(12, 30), serverJob);
slot1.setEndTime(Time(20, 15));
slot1.setEmployee(Employee("Jacob", "Smith"));
Roster roster1 = Roster("051015");
roster1.addTimeSlot(slot1);
TimeSlot slot2(Time(20, 30), Time(22, 0), serverJob, Employee("John", "Doe"));
roster1.addTimeSlot(slot2);
file << "n" + roster1.toString() << endl;

slot2.setEmployee(Employee("Michael", "Hepburn"));
file << "nn" + roster1.toString() << endl;

roster1.removeTimeSlot(slot2);
roster1.addTimeSlot(slot2);
file << "nn" + roster1.toString() << endl;
file.close();
system("PAUSE");
return 0;

输出:

日期:051015 插槽1:开始时间:12:30,结束时间:20:15,作业插槽:服务器(FOH),员工分配:Jacob Smith slot2:开始时间:20:30,结束时间:22:00,作业插槽:服务器(FOH),员工分配:John Doe

日期:051015 插槽1:开始时间:12:30,结束时间:20:15,作业插槽:服务器(FOH),员工分配:Jacob Smith slot2:开始时间:20:30,结束时间:22:00,作业插槽:服务器(FOH),员工分配:John Doe

日期:051015 插槽1:开始时间:12:30,结束时间:20:15,作业插槽:服务器(FOH),员工分配:Jacob Smith slot2:开始时间:20:30,结束时间:22:00,作业插槽:服务器(FOH),员工分配:Michael Hepburn

第二个打印输出上的输出应读取"分配的员工:迈克尔·赫本",而不是"约翰·杜"。

我似乎无法弄清楚如何使程序识别插槽1中的更改。

任何帮助将不胜感激,谢谢!

修改的答案。在这些行中:

TimeSlot slot2(Time(20, 30), Time(22, 0), serverJob, Employee("John", "Doe"));
roster1.addTimeSlot(slot2);
file << "n" + roster1.toString() << endl;

slot2.setEmployee(Employee("Michael", "Hepburn"));
file << "nn" + roster1.toString() << endl;

在将修改后的插槽2添加到它之前打印出名册。

问题来自于您更改插槽的员工,但不要将新插槽设置为名册。

您需要参考参数为addTimesLot();方法。

所以它的原型应该更像是:

void Roster::addTimeSlot(TimeSlot &);

我相信这应该可以解决问题。