string en el espacio de nombres std no nombra un tipo


Esto puede ser un simple error que no estoy viendo, pero Creo que simplemente estoy haciendo algo mal. No te preocupes No estoy usando namespace std en mi encabezado funciones o cualquier cosa que parecía ser el tema de esta persona [Pregunta que leí similar a mío][1] [1]: ¿Por qué estoy recibiendo string no nombra un error de tipo?

Estoy recibiendo 4 errores en este momento:

C:\Documents y Ajustes \ Me \ My Documentos \ C++Proyectos \ C++ \ RandomSentence\Sustantivos.h / 8 / error: 'string' in el espacio de nombres 'std' no nombra un tipo /

C:\Documents y Ajustes \ Me \ My Documentos \ C++Proyectos \ C++ \ RandomSentence\Sustantivos.h / 12 / error: 'string' in el espacio de nombres 'std' no nombra un tipo /

C:\Documents y Ajustes \ Me \ My Documentos \ C++Proyectos \ C++ \ RandomSentence\Sustantivos.h / 13 / error: 'string' in el espacio de nombres 'std' no nombra un tipo /

C:\Documents y Ajustes \ Me \ My Documentos \ C++Proyectos \ C++ \ RandomSentence\Sustantivos.cpp / 9 / error: no 'std::cadena Nouns:: nounGenerator () ' función miembro declarada en clase 'Sustantivos' /

||=== Build finished: 4 errores, 0 advertencias = = = /

Aquí está mi archivo de cabecera:

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()
};

Y este es mi archivo 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;
}
Author: ROMANIA_engineer, 2012-08-08

3 answers

Necesitas

#include <string>

<iostream> declara cout, cin, no string.

 58
Author: Luchian Grigore,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-07 20:46:10

Nouns.h no incluye <string>, pero necesita hacerlo. Es necesario añadir

#include <string>

En la parte superior de ese archivo, de lo contrario el compilador no sabe qué es std::string cuando se encuentra por primera vez.

 7
Author: Ernest Friedman-Hill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-07 20:46:38

Necesitas agregar:

#include <string>

En su archivo de cabecera.

 3
Author: Pablo Santa Cruz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-07 20:46:41