代码如下所示:
#pragma once
#include
class PCB {
public:
double pid;
double runtime;
int priority;
string state;//(waiting, ready_a, running, terminate, block_a)(ready_s, block_s)
//PCB* next;
//PCB* pre;
static int READY; //就绪队列进程个数
static int EXMEM; //外存进程个数
static int POOL; //后备队列进程个数
static int TIMESTAMP;//时间戳
PCB() { /*next = this;*/ }
PCB(double rt, int pri) :runtime(rt), priority(pri) {
pid = TIMESTAMP;
state = "waiting";
}
};
int PCB::POOL = 0;
int PCB::READY = 0;
int PCB::EXMEM = 0;
int PCB::TIMESTAMP = 0;
经过长期检查→。 →,是因为没有使用std,在std里~~~~/吐血+叹气
另外,注意这个类中的静态变量是如何初始化的!
实验过程中每次吐血的虫子都有。 这恐怕是学术能力差的结果。 我满头大汗,羞愧难当。
附上真正的 问题的原因:
在分离编译中,我们常常习惯于在不同的函数中编写不同的类或函数,以提高工作效率。 但是如果两个类写在两个不同的文件中,在使用过程中互相引用,就会出现循环引用,出现这个错误。