c++ - 在命名空间std中不命名类型,C++ 字符串

  显示原文与译文双语对照的内容
117 3

这可以能只是一个简单的错误,但我认为我只是在做错误的事情。不要担心我的头函数中没有使用名称空间 ids,或者者看起来像这个 [Question i read similar to mine] [1] [1] 问题:为什么我获取字符串不命名类型错误

我现在有 4个错误:

c: documents和 SettingsMeMy documentsc++projectsc++randomsentencenouns 。h|8|error: 命名空间'std'中的'字符串'不命名类型|

c: documents和 SettingsMeMy documentsc++projectsc++randomsentencenouns 。h|12|error: 命名空间'std'中的'字符串'不命名类型|

c: documents和 SettingsMeMy documentsc++projectsc++randomsentencenouns 。h|13|error: 命名空间'std'中的'字符串'不命名类型|

c: documents和 SettingsMeMy documentsc++projectsc++randomsentencenouns 。cpp|9|error: 在类'名词'| 中没有声明'。std:: 字符串名词:: noungenerator ( )'成员函数

||===构建完成:4个错误,0警告 === |

这是我的头 file:

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 file:

#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;
}
时间:原作者:0个回答

96 0

你需要

#include <string>

<iostream> 声明 coutcin,而不是 string

原作者:
67 2

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

#include <string>

在该文件的顶部,否则编译器在第一次遇到时不知道 std::string 是什么。

原作者:
...