在做一个职工管理系统的小项目练习时,出现了这样的错误:
1>e:\学习\c++\职工管理系统\职工管理系统\workermanager.h(47): error C2143: 语法错误: 缺少“;”(在“*”的前面)
1>e:\学习\c++\职工管理系统\职工管理系统\workermanager.h(47): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\学习\c++\职工管理系统\职工管理系统\workermanager.h(47): error C2238: 意外的标记位于“;”之前
找到出错的地方:
class WorkerManager
{
public:
int worker_size;
worker **worker_table;
在网上搜了一下,错误原因可能是头文件调用的顺序,但我目前这个项目只写了一个头文件,故想到了可能是“worker”这个类的超前引用问题。
解决方案:将worker类的定义写到WorkerManager类的前面
调整顺序后错误被成功排除。
总结:
此类错误无论是通过调整头文件还是类定义,总而言之是由于类的定义顺序的问题,一个类中要注意不要引用定义在它之后的类(最好以头文件的方式引入要引用的类)