Pourquoi est-ce que je reçois une chaîne ne nomme pas un type Erreur?

game.cpp

#include  #include  #include  #include "game.h" #include "board.h" #include "piece.h" using namespace std; 

jeu.h

 #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.