0

我在文件“Particles.h”中有自己的类,该类的实现在“Particles.cpp”中

我希望文件“Load.h”能够识别其中的类,所以我添加了这一行

#include "Particles.h"

并且该文件无法识别它,并且过去一切正常(我没有在该类中进行任何更改)。

我应该怎么办?

4

5 回答 5

2

听起来您的包含路径 - 编译器扫描以查找您 #include 的文件的目录列表 - 设置不正确。您使用的是哪个编译器?

于 2008-09-16T13:06:33.000 回答
1

好吧,如果您列出了错误代码,它可能会有所帮助。在我的脑海中,你在 Particles.h 中有什么东西可以确保该文件只包含一次吗?有两种方法可以做到这一点。第一个是使用#pragma 一次,但我认为这可能是微软特有的。第二种是使用#define。例子:

#ifndef PARTICLES_H 
#define PARTICLES_H

class CParticleWrapper
{
...
};

#endif

此外,除非您从 Particles.h 中的类派生或使用类的实例而不是指针,否则您可以使用类的前向声明并跳过将头文件包含在头文件中,这将节省您编译时间。

#ifndef LOAD_H
#define LOAD_H

class CParticleWrapper;

class CLoader
{
   CParticleWrapper * m_pParticle;

public:

   CLoader(CParticleWrapper * pParticle);
   ...
};  

#endif

然后,在 Load.cpp 中,您将包含particle.h 文件。

于 2008-09-16T13:23:10.887 回答
0

听起来您需要包含 Stone 类的定义,但如果没有更多细节就不可能说出来。您可以通过删除不相关的代码并发布它来缩小错误范围吗?

于 2008-09-16T14:40:57.720 回答
0

确保文件“Particles.cpp”也包含“Particles.h”,并且这些文件在同一个文件夹中,并且它们都是同一个项目的一部分。如果您还分享您从编译器获得的错误消息,这将有所帮助。

于 2008-09-16T13:10:02.027 回答
0

Dev C++,它使用 GCC,该行是:

Stone *stone[48];

它说:“预期的构造函数、析构函数或在'*'标记之前的类型转换”。

于 2008-09-16T13:10:06.207 回答