ccccsdf 发表于 2023-3-29 16:03:05

机房预约系统报错

本帖最后由 ccccsdf 于 2023-3-29 16:18 编辑

#pragma once
#include<vector>
#include<iostream>
#include<fstream>
#include<algorithm>
#include"identity.h"
#include"globalfile.h"
#include"student.h"
#include"teacher.h"
#include"computerroom.h"
using namespace std;

class manager :public identity               
{
public:
        manager();

        manager(string name, string pwd);//用户名、密码

        virtual void openmenu();

        void addperson();//添加账号

        void showperson();//查看账号

        void showcomputer();//查看机房信息

        void cleanfile();//清空预约记录

        void initvector();//初始化容器

        bool checkrepeat(int id, int type);//判断id是否重复

        vector<student> stu;//学生容器

        vector<teacher> tea;//老师容器

        vector<computerroom> com;//机房容器
};
这段中报错
严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C2065        “computerroom”: 未声明的标识符        机房预约系统        D:\项目\机房预约系统\manager.h        41       
严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C2923        “std::vector”: 对于参数“_Ty”,“computerroom”不是有效的 模板 类型变量        机房预约系统        D:\项目\机房预约系统\manager.h        41       
严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C2065        “student”: 未声明的标识符        机房预约系统        D:\项目\机房预约系统\manager.h        37       

可是我明明声明了computerroom和teacher的头文件

下面我给出computerroom和teacher的定义文件
#pragma once
#include<iostream>
#include"manager.h"
using namespace std;

class computerroom
{
public:
        int m_comid;//机房id

        int m_maxnum;//最大容量
};

#pragma once
#include<iostream>
#include<vector>
#include<fstream>
#include"computerroom.h"
#include"globalfile.h"
#include"identity.h"
using namespace std;

class student :public identity
{
public:
        student();//构造函数

        student(int id, string name, string pwd);//有参构造,载入学号、用户名、密码

        virtual void openmenu();//菜单界面

        void applyorder();//申请预约

        void showorder();//显示预约

        void showallorder();//显示所有预约

        void cancelorder();//取消预约

        void initvector();//获取机房信息

        int m_id;//学号

        vector<computerroom> ccom;//机房信息容器
};

ccccsdf 发表于 2023-3-29 16:22:52

我发现必须在manager.h里面重新声明class computerroom;class student;才行,搞不懂为什么,之前明明不用的
页: [1]
查看完整版本: 机房预约系统报错