0

我正在用 C++(学校项目)编写一个多文件程序。昨天我遇到了一个相当奇怪的问题。当我在我的程序中包含一个特定的头文件时,它拒绝编译。它给了我错误“缺少;在*之前”,这表明我在其他头文件中声明的一些类变得未声明或类似的东西。我包含的头文件包括头文件也包括我包含的头文件。另一方面,我使用 #if !defined(FILENAME_H) 来避免双重包含。还值得一提的是,它只是一个导致我的问题的特定头文件,定义/未定义/endif 代码没有任何问题。

4

2 回答 2

0

看起来你在有问题的标题中有这样的东西:

class A
{

}

没有;课后声明。一旦你包含了那个标题,它就会在以后导致错误。

于 2013-04-21T09:41:30.037 回答
0

老兄,每个头文件都应该以

#ifndef NAMEOFFILE_H
#define NAMEOFFILE_H

and end with

#endif

这确保了一个头文件不会多次包含在您的程序中。

另外,如果您的班级未申报,我很确定您一定错过了

类定义后的大括号} 末尾的分号

于 2013-04-21T09:47:01.323 回答