2008-09-16 9 views
0

ich meine eigene Klasse in der Datei „Particles.h“ und die Klasse des Implementierung haben, ist innen „Particles.cpp“Eine Datei nicht andere Datei Klasse in C++ erkennen

ich die Datei „Load.h wollen "zu meinen Klassen innerhalb dort zu erkennen, also habe ich die Linie

#include "Particles.h" 

und die Datei und in der Vergangenheit war alles ok (ich gemacht habe keine Änderungen innerhalb dieser Klasse) nicht erkennt hinzugefügt.

Was soll ich tun?

Antwort

2

Es klingt wie Ihr Include-Pfad - die Liste der Verzeichnisse, die der Compiler scannt, um Dateien zu finden, die Sie #einschließen - ist falsch eingestellt. Welchen Compiler benutzen Sie?

0

stellen Sie sicher, dass die Datei "Particles.cpp" auch "Particles.h" enthält, um mit zu beginnen, und die Dateien sind im selben Ordner und sie sind alle Teil des gleichen Projekts. Es hilft, wenn Sie auch die Fehlermeldung teilen, die Sie von Ihrem Compiler erhalten.

0

Dev C++, verwendet es GCC, Die Linie ist:

Stone *stone[48]; 

und es sagt: "erwartet Konstruktor, Destruktor oder Typumwandlung vor '*' Token".

1

Nun, wenn Sie Ihre Fehlercodes aufgelistet haben, könnte es helfen. Hast du etwas in Particles.h, um sicherzustellen, dass die Datei nur einmal enthalten ist? Es gibt zwei Methoden, dies zu tun. Der erste ist, #pragma einmal zu verwenden, aber ich denke, dass das Microsoft spezifisch sein könnte. Die zweite besteht darin, ein #define zu verwenden. Beispiel:

#ifndef PARTICLES_H 
#define PARTICLES_H 

class CParticleWrapper 
{ 
... 
}; 

#endif 

Auch wenn Sie von einer Klasse in Particles.h sind Ableitung oder eine Instanz einer Klasse anstelle eines Zeigers verwenden, können Sie eine Vorwärts-Deklaration der Klasse verwenden und überspringen einschließlich des Headers Datei in einer Header-Datei, die Sie kompilieren Zeit sparen.

#ifndef LOAD_H 
#define LOAD_H 

class CParticleWrapper; 

class CLoader 
{ 
    CParticleWrapper * m_pParticle; 

public: 

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

#endif 

Dann in der Load.cpp, würden Sie die particle.h-Datei enthalten.

0

Es hört sich an, als müssten Sie die Definition der Stone-Klasse aufnehmen, aber es wäre unmöglich, ohne weitere Details zu sagen. Können Sie den Fehler eingrenzen, indem Sie nicht verwandten Code entfernen und diesen Artikel posten?