2008-09-16 17 views
0

J'ai ma propre classe dans le fichier « Particles.h » et la mise en œuvre de la classe est à l'intérieur « Particles.cpp »Un fichier ne reconnaît pas la classe d'un autre fichier dans C++

Je veux que le fichier « Load.h «reconnaître mes classes à l'intérieur, donc je l'ai ajouté la ligne

#include "Particles.h" 

et le fichier ne reconnaît pas et dans le passé, tout était OK (je ne l'ai pas fait des changements à l'intérieur de cette classe).

Que dois-je faire?

Répondre

2

Il semble que votre chemin d'inclusion - la liste des répertoires que le compilateur analyse afin de localiser les fichiers que vous #include - est incorrectement défini. Quel compilateur utilisez-vous?

0

Assurez-vous que le fichier "Particles.cpp" a également inclus "Particles.h" pour commencer et que les fichiers se trouvent dans le même dossier et qu'ils font tous partie du même projet. cela vous aidera si vous partagez également le message d'erreur que vous recevez de votre compilateur.

0

Dev C++, il utilise GCC, La ligne est:

Stone *stone[48]; 

et il dit: "constructeur prévu, destructor ou conversion de type avant jeton '*'".

1

Eh bien, si vous avez énuméré vos codes d'erreur, cela pourrait aider. En haut de ma tête, avez-vous quelque chose dans Particles.h pour vous assurer que le fichier n'est inclus qu'une seule fois? Il y a deux méthodes pour le faire. Le premier est d'utiliser #pragma une fois, mais je pense que cela pourrait être spécifique à Microsoft. La seconde consiste à utiliser un #define. Exemple:

#ifndef PARTICLES_H 
#define PARTICLES_H 

class CParticleWrapper 
{ 
... 
}; 

#endif 

De plus, à moins que vous dériver d'une classe en Particles.h ou en utilisant une instance d'une classe au lieu d'un pointeur, vous pouvez utiliser une déclaration avant de la classe et sauter, y compris l'en-tête fichier dans un fichier d'en-tête, ce qui vous permettra d'économiser temps de compilation. Puis, dans le fichier Load.cpp, vous incluez le fichier particle.h.

0

Il semble que vous ayez besoin d'inclure la définition de la classe Stone, mais il serait impossible de le dire sans plus de détails. Pouvez-vous réduire l'erreur en supprimant le code indépendant et l'afficher?