Подтвердить что ты не робот

String в пространстве имен std не называет тип

Итак, я уже прочитал несколько разных вопросов, но ни одно из решений никого казалось, действительно исправить мою проблему. Это может быть просто ошибка, которую я не вижу, но Я думаю, что я просто делаю что-то не так. Не волнуйтесь, я не использую пространство имен std в своем заголовке  функций или чего-либо, что, казалось, было проблемой этого человека [Вопрос, который я читал, похоже на mine] [1] [1]: Почему я получаю строку, не называю тип Ошибка?

Я получаю 4 ошибки прямо сейчас:

C:\Documents and Settings\Me\My Документы\С++ Projects\С++\RandomSentence\Nouns.h | 8 | error: 'string' в namespace 'std' не называет тип |

C:\Documents and Settings\Me\My Документы\С++ Projects\С++\RandomSentence\Nouns.h | 12 | error: 'string' в namespace 'std' не называет тип |

C:\Documents and Settings\Me\My Документы\С++ Projects\С++\RandomSentence\Nouns.h | 13 | error: 'string' в namespace 'std' не называет тип |

C:\Documents and Settings\Me\My Документы\С++ Проекты\С++\RandomSentence\Nouns.cpp | 9 | ошибка: нет 'std::string Существительные:: nounGenerator()' функция-член, объявленная в классе 'Существительные' |

|| === Сборка завершена: 4 ошибки, 0 предупреждений === |

Нет, это не домашнее задание или что-то еще, и да, я обыскал его и попытался решить проблему самостоятельно.

Вот мой заголовочный файл:

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

И это мой файл 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;
}

Извините, это так долго, но я надеюсь, что я дал достаточно подробностей. Если у вас возникнут вопросы, спросите меня, и я буду рад объяснить, почему я что-то сделал, и если у вас есть какие-либо предложения о том, как я могу сделать вещи более простыми или что-то, что я должен исправить, не стесняйтесь говорить мне. Спасибо за ваше время и помощь.

4b9b3361

Ответ 1

Вам нужно

#include <string>

<iostream> объявляет cout, cin, а не string.

Ответ 2

Nouns.h не включает <string>, но это необходимо. Вам нужно добавить

#include <string>

вверху этого файла, иначе компилятор не знает, что такое std::string, когда оно встречается в первый раз.

Ответ 3

Вам нужно добавить:

#include <string>

В вашем файле заголовка.