la chaîne de caractères dans namespace std ne nomme pas un type

c'est peut-être une simple erreur que je ne vois pas, mais Je pense que je fais juste quelque chose de mal. Ne vous inquiétez pas je n'utilise pas namespace std dans mon en-tête fonctions ou tout ce qui semblait être le problème de cette personne [Question j'ai lu similaire à à moi][1] [1]: Pourquoi est-ce que string ne nomme pas une erreur de type?

j'obtiens 4 erreurs en ce moment:

C:Documents et paramètresMe My DocumentsProjets C++C++RandomSentenceNoms.h|8|erreur: 'string' en espace de noms 'std' n'est pas le nom d'un type ou d'

C:Documents et paramètresMe My DocumentsProjets C++C++RandomSentenceNoms.h|12|erreur: 'string' en espace de noms 'std' n'est pas le nom d'un type ou d'

C:Documents et paramètresMe My DocumentsProjets C++C++RandomSentenceNoms.h|13|erreur: 'string' en espace de noms 'std' n'est pas le nom d'un type ou d'

C:Documents et paramètresMe My DocumentsProjets C++C++RandomSentenceNoms.rpc|9|erreur: pas de 'std::string Nouns::nounGenerator ()' fonction membre déclarée dans la classe 'Nouns' /

| | = = = construction terminée: 4 Erreurs, 0 Avertissements = = = /

Voici mon fichier d'en-tête:

class Nouns
{
    public:
        Nouns();
        std::string noun;
    protected:
    private:
        int rnp; // random noun picker
        std::string dog, cat, rat, coat, toilet, lizard, mime, clown, barbie, pig, lamp, chair, hanger, pancake, biscut, ferret, blanket, tree, door, radio;
        std::string nounGenerator()
};

Et voici mon fichier RPC:

#include "Nouns.h"
#include <iostream>

Nouns::Nouns()
{

}

std::string Nouns::nounGenerator(){
    RollRandom rollRandObj;

    rnp = rollRandObj.randNum;

    switch(rnp){
    case 1:
        noun = "dog";
        break;
    case 2:
        noun = "cat";
        break;
    case 3:
        noun = "rat";
        break;
    case 4:
        noun = "coat";
        break;
    case 5:
        noun = "toilet";
        break;
    case 6:
        noun = "lizard";
        break;
    case 7:
        noun = "mime";
        break;
    case 8:
        noun = "clown";
        break;
    case 9:
        noun = "barbie";
        break;
    case 10:
        noun = "pig";
        break;
    case 11:
        noun = "lamp";
        break;
    case 12:
        noun = "chair";
        break;
    case 13:
        noun = "hanger";
        break;
    case 14:
        noun = "pancake";
        break;
    case 15:
        noun = "biscut";
        break;
    case 16:
        noun = "ferret";
        break;
    case 17:
        noun = "blanket";
        break;
    case 18:
        noun = "tree";
        break;
    case 19:
        noun = "door";
        break;
    case 20:
        noun = "radio";
        break;
    }

    return noun;
}
33
demandé sur ROMANIA_engineer 2012-08-08 00:44:57

3 réponses

Vous devez

#include <string>

<iostream> déclare cout , cin , pas string .

58
répondu Luchian Grigore 2012-08-07 20:46:10

Nouns.h n'inclut pas <string> , mais il le faut. Vous devez ajouter

#include <string>

en haut de ce fichier, sinon le compilateur ne sait pas ce qu'est std::string quand il est rencontré pour la première fois.

7
répondu Ernest Friedman-Hill 2012-08-07 20:46:38

vous devez ajouter:

#include <string>

Dans votre fichier d'en-tête.

3
répondu Pablo Santa Cruz 2012-08-07 20:46:41