c++ 命名空间std中的字符串未命名类型

k97glaaz  于 2023-05-19  发布在  其他
关注(0)|答案(5)|浏览(157)

这可能只是一个简单的错误,我没有看到,但我认为我只是做错了什么。别担心,我没有在我的头函数中使用命名空间std或任何似乎是这个人的问题[问题我读到类似于我的][1] [1]:Why am I getting string does not name a type Error?
我现在有四个错误:
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|错误: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;
}
aiqt4smr

aiqt4smr1#

你需要

#include <string>

<iostream>声明coutcin,而不是string

e0bqpujr

e0bqpujr2#

Nouns.h不包含<string>,但它需要包含。你需要加上

#include <string>

否则编译器在第一次遇到std::string时不知道它是什么。

nnvyjq4y

nnvyjq4y3#

您需要添加:

#include <string>

在你的头文件中。

eit6fx6z

eit6fx6z4#

新闻资讯

#include <string.h>

不是

#include <string>
8ljdwjyq

8ljdwjyq5#

你需要加上

#include <string>

这里您尝试访问string noun::,但没有创建名为string noun的命名空间。您正在尝试访问一个私人文件。

相关问题