web-dev-qa-db-fra.com

chaîne dans l'espace de noms std ne nomme pas un type

Ce n'est peut-être qu'une simple erreur que je ne vois pas, mais je pense simplement que je fais quelque chose de mal. Ne vous inquiétez pas, je n'utilise pas namespace std dans mes fonctions d'en-tête ni quoi que ce soit qui semble être le problème de cette personne [Question que j'ai lue, semblable à la mienne] [1] [1]: Pourquoi suis-je? Je reçois une chaîne qui ne nomme pas un type Erreur?

Je reçois 4 erreurs en ce moment:

C:\Documents and Settings\Me\Mes documents\Projets C++\C++\RandomSentence\Nouns.h | 8 | erreur: 'chaîne' dans l'espace de noms 'std' ne nomme pas de type |

C:\Documents and Settings\Me\Mes documents\Projets C++\C++\RandomSentence\Nouns.h | 12 | erreur: 'chaîne' dans l'espace de noms 'std' ne nomme pas un type |

C:\Documents and Settings\Me\Mes documents\Projets C++\C++\RandomSentence\Nouns.h | 13 | erreur: 'chaîne' dans l'espace de noms 'std' ne nomme pas de type |

C:\Documents and Settings\Me\Mes documents\Projets C++\C++\RandomSentence\Nouns.cpp | 9 | error: no 'std :: string Nouns :: nounGenerator ()' fonction 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 cpp:

#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;
}
38
user1581100

Tu dois

#include <string>

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

67
Luchian Grigore

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 quoi std::string est quand il est rencontré pour la première fois.

8

Vous devez ajouter:

#include <string>

Dans votre fichier d'en-tête.

4
Pablo Santa Cruz