在头文件C ++中声明对象

时间:2012-12-12 16:50:23

标签: c++ oop class header

我在头文件(.h)中声明了一个类,并在.cpp中定义了它的构造函数和函数(包括默认构造函数)

现在我想在另一个头文件中声明一个对象,并在另一个.cpp文件中初始化它。我需要这样做,因为对象的初始化取决于cpp中的一些变量。 .h文件中的声明如下:

Saboteur *activeFault; /*Saboteur is the class, activeFault the object*/

当我尝试编译程序时,出现以下错误:

  

错误C2143:语法错误:缺少';'在'*'之前。

任何线索为何会发生这种情况?

提示:#includes都没问题,最奇怪的是当编译器尝试编译定义了class Saboteur函数的.cpp文件时,我得到了错误,但它说的是错误在上面写的行(这是另一个cpp文件)。

2 个答案:

答案 0 :(得分:4)

破坏Saboteur类的原型。声明:

class Saboteur;

之前宣布activeFault

然后,在其他地方,您提供class Saboteur的完整定义。

答案 1 :(得分:0)

想到很多想法

  1. 您是否在头文件中包含了Saboteur的.h文件 产生这个问题?
  2. 这是一个模板化的课程吗?
  3. 也许是标题 实际包含之前包括破坏者的文件 破坏者类。在这种情况下,请添加您的其他.h文件:

    类Saboteur;