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

Declaring object in header file C++

本文关键字:声明 对象 C++ 文件      更新时间:2023-10-16

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

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

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

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

错误

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

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

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

破坏者类的原型。 声明:

class Saboteur;

在那份activeFault宣言之前.

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

有很多想法浮现在脑海中

  1. 您是否在头文件中包含了破坏者的 .h 文件产生这个问题?
  2. 这是一个模板化类吗?
  3. 也许标题在实际包含之前包含包含破坏者的文件破坏者类。 在本例中添加您的其他 .h 文件:

    类破坏者;