erreur: la "Classe" n'a pas été déclarée dans ce champ d'application
Je voudrais vous demander, comment puis-je définir la classe à l'intérieur d'un autre. Dans le code ci-dessous. J'essaie de le définir dans la façon #define "CCompField.h" ,mais ça ne fonctionne pas. :(.
Je pense qu'il est très fréquent problème de programmation, il était probablement 100000 fois résolu sur internet, mais je ne sais pas comment le trouver. Merci pour l'aide.
#ifndef CNEWGAME_H
#define CNEWGAME_H
class CNewGame{
public:
CNewGame();
~CNewGame();
void BeginnerGame();
void IntermediateGame();
void AdviceGame();
void HowToPlay();
void NetGame( int mode );
int MoveInMenu();
protected:
void Intro();
void Animation ();
void Menu(int);
int MoveInNetMenu();
void NetMenu(int);
void HeadOfGame();
template <class T> void BodyOfGame(CCompField & b, T & a);
void FooterOfGame();
};
#endif
Il fait suite à des erreurs.
In file included from src/CNewGame.cpp:12:0:
src/CNewGame.h:37:36: error: ‘CCompField’ was not declared in this scope
src/CNewGame.h:37:45: error: ‘b’ was not declared in this scope
src/CNewGame.h:37:50: error: expected primary-expression before ‘&’ token
src/CNewGame.h:37:52: error: ‘a’ was not declared in this scope
src/CNewGame.h:37:53: error: variable or field ‘BodyOfGame’ declared void
Une raison quelconque vous avez l'en-tête de la garde deux fois?
Je trouve la réponse! 🙂
non je n'ai pas deux fois. Je ne fais que erreur lors de la copie
Grand. Si la réponse est la même que l'une de celles ci-dessous sélectionnez la réponse correcte. Si pas, poster la bonne réponse comme une réponse à votre question et sélectionnez la bonne réponse.
la réponse a été que j'ai inclus seulement la classe CCompField
Je trouve la réponse! 🙂
non je n'ai pas deux fois. Je ne fais que erreur lors de la copie
Grand. Si la réponse est la même que l'une de celles ci-dessous sélectionnez la réponse correcte. Si pas, poster la bonne réponse comme une réponse à votre question et sélectionnez la bonne réponse.
la réponse a été que j'ai inclus seulement la classe CCompField
OriginalL'auteur Jamaisvu | 2012-06-12
Vous devez vous connecter pour publier un commentaire.
Au lieu de
#define "CCompField.h"
que vous devez inclure:Vous avez également une paire supplémentaire de
mais une seule fermeture
#endif
. Vous n'avez pas besoin de la deuxième paire de#ifndef
/#define
Ensuite, vous devez avoir CCompFiled.h dans le même répertoire que les autres fichiers (ou au moins sur le chemin de votre compilateur utilise)
J'ai trouver La solution j'ai essayé d'inclure seulement CCompField mais il était nécessaire d'inclure #include "CField.h" #include "CCompField.h" #include "CCommonField.h" parce que c'est la sous-classe d'entre eux. J'apprécie vos réponses. désolé pour le peu de chaos. Je suis nouveau ici.
OriginalL'auteur Attila
Vous avez besoin de trouver le fichier d'en-tête où
CCompField
est défini et#include
(pas#define
) à partir deCNewGame.h
.OriginalL'auteur NPE