我在头文件(.h)中声明了一个类,并在.cpp中定义了它的构造函数和函数(包括默认构造函数)
现在我想在另一个头文件中声明一个对象,并在另一个.cpp文件中初始化它。我需要这样做,因为对象的初始化取决于cpp中的一些变量。 .h文件中的声明如下:
Saboteur *activeFault; /*Saboteur is the class, activeFault the object*/
当我尝试编译程序时,出现以下错误:
错误C2143:语法错误:缺少';'在'*'之前。
任何线索为何会发生这种情况?
提示:#includes都没问题,最奇怪的是当编译器尝试编译定义了class Saboteur
函数的.cpp文件时,我得到了错误,但它说的是错误在上面写的行(这是另一个cpp文件)。
答案 0 :(得分:4)
破坏Saboteur类的原型。声明:
class Saboteur;
之前宣布activeFault
。
然后,在其他地方,您提供class Saboteur
的完整定义。
答案 1 :(得分:0)
想到很多想法
也许是标题 实际包含之前包括破坏者的文件 破坏者类。在这种情况下,请添加您的其他.h文件:
类Saboteur;