#include #include #include #include "game.h" #include "board.h" #include "piece.h" using namespace std;
#ifndef GAME_H #define GAME_H #include class Game { private: ssortingng white; ssortingng black; ssortingng title; public: Game(istream&, ostream&); void display(colour, short); }; #endif
L’erreur est:
game.h:8 error: 'ssortingng' does not name a type
game.h:9 error: 'ssortingng' does not name a type
Votre déclaration d’ using
est dans game.cpp
, pas game.h
où vous déclarez réellement des variables de chaîne. Vous aviez l’intention de mettre using namespace std;
dans l’en-tête, au-dessus des lignes qui utilisent ssortingng
, ce qui permettrait à ces lignes de trouver le type de ssortingng
défini dans le namespace std
.
Comme d’ autres l’ont fait remarquer , ce n’est pas une bonne pratique dans les en-têtes – tous ceux qui incluent cet en-tête vont aussi involontairement toucher la ligne d’ using
et importer std
dans leur espace de nom; la bonne solution est de changer ces lignes pour utiliser std::ssortingng
place
ssortingng
ne nomme pas un type. La classe dans l’en-tête de ssortingng
est appelée std::ssortingng
.
Veuillez ne pas using namespace std
dans un fichier d’en-tête, cela pollue l’espace de noms global pour tous les utilisateurs de cet en-tête. Voir aussi “Pourquoi utiliser” namespace std; ” considéré comme une mauvaise pratique en C ++? ”
Votre classe devrait ressembler à ceci:
#include class Game { private: std::ssortingng white; std::ssortingng black; std::ssortingng title; public: Game(std::istream&, std::ostream&); void display(colour, short); };
Utilisez simplement le std::
qualifier devant la ssortingng
dans vos fichiers d’en-tête.
En fait, vous devriez aussi l’utiliser pour istream
et ostream
– et vous aurez besoin de #include
en haut de votre fichier d’en-tête pour le rendre plus autonome.
Essayez d’ using namespace std;
un using namespace std;
en haut de game.h
ou utilisez le std::ssortingng
complet au lieu de la ssortingng
.
L’ namespace
de namespace
dans game.cpp
est après que l’en-tête soit inclus.