我正在用C ++(学校项目)编写一个多文件程序。昨天我遇到了一个相当奇怪的问题。当我在程序中包含一个特定的头文件时,它拒绝编译。它给了我错误“missing; before *”,表示我在其他标题中声明的某些类变为未声明或类似的东西。我所包含的头文件包括头文件,还包括我包含的头文件。另一方面,我使用#if!定义(FILENAME_H)来避免双重包括。还值得一提的是,只有一个特定的头文件会导致我的问题,并且定义/未定义的/ endif代码没有任何问题。
答案 0 :(得分:0)
看起来你在有问题的标题中有这样的东西:
class A
{
}
课后声明没有;
。一旦你包含了这个标题,它就会在以后导致错误。
答案 1 :(得分:0)
Dude每个头文件都应该以
开头#ifndef NAMEOFFILE_H
#define NAMEOFFILE_H
and end with
#endif
这可以确保程序中不会多次包含头文件。
此外,如果您的课程未申报,我很确定您必须错过
课后定义大括号末尾的分号