0

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

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

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

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

错误 C2143:语法错误:缺少“;” 前 '*'。

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

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

4

2 回答 2

4

原型破坏者类。宣布:

class Saboteur;

在声明之前activeFault

然后,在其他地方,您提供class Saboteur.

于 2012-12-12T16:53:57.447 回答
0

有很多想法浮现在脑海

  1. 您是否在产生此问题的头文件中包含了破坏者的 .h 文件?
  2. 这是一个模板类吗?
  3. 可能包含破坏者的头文件在实际包含破坏者类之前包含在内。在这种情况下,添加您的其他 .h 文件:

    破坏者级;

于 2012-12-12T16:57:35.633 回答