我有一个函数可以将对象添加到对象Process
的向量中。
我有一个名为Process * CPU
的私人成员,我的目标是让它指向我添加到向量的第一个进程。我可以继续添加更多进程,但CPU仍应指向第一个进程。
void DiskSched::addProcess() {
if (isEmpty()) {
// If CPU is empty, the new process will automatically go to the CPU
Process newProcess;
newProcess.setProcessProperties(0,Header::PID,++Header::TIME);
CPU = &newProcess; // assigning the first process to the CPU
cout << endl;
cout << "Process object: " << newProcess.getPageNum() << " "<< newProcess.getPID() << " " << newProcess.getTimeStamp() << endl;
cout << "CPU pointer: " << CPU->getPageNum() << " " << CPU->getPID() << " " << CPU->getTimeStamp() << endl;
}
else {
// ....
}
}
“CPU指针”将与Process对象相同,因为它位于函数中,这就是我想要的。我明白了:
0 1 1
0 1 1
我有另一个只输出CPU属性的函数:
void DiskSched::currentCPU() {
cout << endl;
cout << "Page #: " << CPU->getPageNum() << endl
<< "PID: " << CPU->getPID() << endl
<< "Timestamp: " << CPU->getTimeStamp() << endl;
}
当我调用currentCPU时,我的CPU指针的属性不一样。我明白了:
Page #: 1595623976 (should be 0)
PID: 32767 (should be 1)
Timestamp: 1595624103 (should be 1)
我相信当我将CPU
分配给向量中第一个对象的地址时,它只是用于该函数调用,它实际上并没有改变我的私有CPU
指针。我该如何解决这个问题?