1. ホーム
  2. c++

[解決済み] 名前空間 std の文字列が型名になっていない

2022-02-18 03:11:37

質問

これは私が見ていないだけで、単純なミスかもしれませんが 単純にやり方が悪いだけだと思うのですが。ヘッダで名前空間stdを使っているわけではありません。 この方の問題と思われる、関数やその他のもの[Question I read similar to mine][1] [1]です。 string does not name a type Errorが発生するのはなぜですか?

今、4つのエラーが発生しています。

C:\Documents and SettingsMeMy DocumentsC++Projects} RandomSentence} Nouns.h|8|error: 'string' in a. 名前空間 'std' が型名でない|。

C:Documents and SettingsMeMy DocumentsC++Projects C++RandomSentence Nouns.h|12|error: 'string' in a. 名前空間 'std' が型名でない|。

C:Documents and SettingsMeMy DocumentsC++Projects C++RandomSentence Nouns.h|13|error: 'string' in a. 名前空間 'std' が型名でない|。

C:Documents and SettingsMeMy DocumentsC++ProjectsC++RandomSentenceNouns.cpp|9|error: no 'std::string Nouns::nounGenerator()' クラスで宣言されたメンバ関数 'Nouns'|です。

|||=== ビルド終了: エラー 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;
}

解決方法は?

必要なのは

#include <string>

<iostream> 宣言 cout , cin , ない string .