57

これは私が見ていない単純な間違いかもしれませんが、私は単に何か間違ったことをしていると思います。ヘッダー関数で名前空間stdを使用していないことや、この人の問題と思われるものを使用していないことを心配しないでください[私の質問と同じように読んだ] [1] [1]:文字列を取得する理由がタイプに名前を付けないエラー?

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

C:\ Documents and Settings \ Me \ My Documents \ C ++ Projects \ C ++ \ RandomSentence \ Nouns.h | 8 |エラー:名前空間'std'の'string'はタイプを指定していません|

C:\ Documents and Settings \ Me \ My Documents \ C ++ Projects \ C ++ \ RandomSentence \ Nouns.h | 12 |エラー:名前空間'std'の'string'はタイプを指定していません|

C:\ Documents and Settings \ Me \ My Documents \ C ++ Projects \ C ++ \ RandomSentence \ Nouns.h | 13 |エラー:名前空間'std'の'string'はタイプを指定していません|

C:\ Documents and Settings \ Me \ My Documents \ C ++ Projects \ C ++ \ RandomSentence \ Nouns.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;
}
4

4 に答える 4

96

必要がある

#include <string>

<iostream>cout、、ではcinなくを宣言しstringます。

于 2012-08-07T20:46:10.523 に答える
8

Nouns.hは含まれていませんが<string>、含める必要があります。追加する必要があります

#include <string>

そのファイルの先頭にある場合、それ以外の場合、コンパイラは、初めて検出されたときに何std::stringが発生したかを認識しません。

于 2012-08-07T20:46:38.313 に答える
4

追加する必要があります:

#include <string>

ヘッダーファイル内。

于 2012-08-07T20:46:41.057 に答える
-2

追加する必要があります

#include <string>

ここでは、アクセスしようとしていますstring noun::が、という名前の名前空間を作成していませんstring noun。プライベートファイルにアクセスしようとしています。

于 2021-03-22T10:08:25.247 に答える