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

缺少类型说明符&未知重写说明符(已解谜)_第1张图片
代码如下:

#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;

经长期检查→ 。→,是因为没有using namespace std,string是std里的呀~~~~/吐血+叹气
另外,注意这里类静态变量的初始化方式!
每逢实验就各种吐血bug,这恐怕就是学艺不精的**了呢,汗汗汗汗颜。

转载 真·未知重写说明符的问题产生原因:

1.循环引用
在分离式编译中,我们往往习惯将不同的类或者函数分别写在不同的函数中,提高工作效率。但如果在使用时出现两个类分别在两个不同的文件中编写,并且相互引用,则会出现循环引用,引发此错误。
解决方案:前置声明。

2.语法错误
此问题大多因为粗心而导致,比如在某个成员函数中把分号;写成了中文分号;,将会出现此类错误。
解决方案:修改分号

3.类的顺序错误
如果一个类的成员中包含另一个类,则被包含的类的生命一定要在包含的类之前。

你可能感兴趣的:(那些年的臭虫与谜)