繁体   English   中英

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

[英]Declaring object in header file C++

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

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

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

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

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

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

提示:#include都可以,最奇怪的是,当编译器尝试编译定义了class Saboteur的函数的.cpp文件时,我得到了错误,但它表示错误在所写的行中以上(这是另一个cpp文件)。

破坏分子阶级的原型。 宣布:

class Saboteur;

在声明activeFault之前。

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

有很多想法

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

    破坏者阶级;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM