缺少类型说明符&未知重写说明符(已解谜)

缺少类型说明符&未知重写说明符(已解谜)
文章图片

代码如下:

#pragma once#includeclass 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;

经长期检查→ 。→,是因为没有using namespace std,string是std里的呀~~~~/吐血+叹气
另外,注意这里类静态变量的初始化方式!
每逢实验就各种吐血bug,这恐怕就是学艺不精的**了呢,汗汗汗汗颜。
附转载 真·未知重写说明符的问题产生原因:
1.循环引用
在分离式编译中,我们往往习惯将不同的类或者函数分别写在不同的函数中,提高工作效率。但如果在使用时出现两个类分别在两个不同的文件中编写,并且相互引用,则会出现循环引用,引发此错误。
解决方案:前置声明。
【缺少类型说明符&未知重写说明符(已解谜)】2.语法错误
此问题大多因为粗心而导致,比如在某个成员函数中把分号; 写成了中文分号;,将会出现此类错误。
解决方案:修改分号
3.类的顺序错误
如果一个类的成员中包含另一个类,则被包含的类的生命一定要在包含的类之前。

    推荐阅读