Je suis novice en C++ mais je n'arrive pas à comprendre pourquoi cela ne se compilera pas pour moi. Je cours sur un Mac, codant avec Xcode, mais je construis avec mon propre makefile de bash.C++ g ++ ne trouve pas de type 'chaîne' dans le fichier d'en-tête de la classe
Quoi qu'il en soit, je reçois deux erreurs de compilation que le type de «chaîne» ne peut pas être trouvé, même si j'ai inclus. Toute aide serait la bienvenue. Code:
//#include <string> // I've tried it here, too. I'm foggy on include semantics, but I think it should be safe inside the current preprocessor "branch"
#ifndef APPCONTROLLER_H
#define APPCONTROLLER_H
#include <string>
class AppController {
// etc.
public:
int processInputEvents(string input); //error: ‘string’ has not been declared
string prompt(); //error: ‘string’ does not name a type
};
#endif
j'inclure ce fichier dans mon main.cpp, et ailleurs dans le principal j'utiliser le type string
et cela fonctionne très bien. Bien que dans le principal j'ai inclus iostream
au lieu de string
(à d'autres fins). Oui, j'ai aussi essayé d'inclure iostream dans ma classe AppController mais cela n'a rien résolu (je ne m'y attendais pas vraiment non plus). Donc, je ne suis pas vraiment sûr de quel est le problème. Des idées?
+ 1 pour éviter «using namespace» dans les en-têtes –
+1 pour décrire la réponse. Mentionner le moyen de mise en œuvre possible. – Tirth