这可能只是一个我没有看到的简单错误,但是 我想我只是做错了什么。别担心,我没有在标头中使用名称空间 std 功能或任何似乎是这个人的问题[我读到的问题类似于 我的][1] [1]:为什么我收到 string does not name a type 错误?
我现在收到 4 个错误:
C:\Documents and Settings\Me\My Documents\C++Projects\C++\RandomSentence\Nouns.h|8|错误:“字符串” 命名空间“std”未命名类型|
C:\Documents and Settings\Me\My Documents\C++Projects\C++\RandomSentence\Nouns.h|12|错误:“字符串” 命名空间“std”未命名类型|
C:\Documents and Settings\Me\My Documents\C++Projects\C++\RandomSentence\Nouns.h|13|错误:“字符串” 命名空间“std”未命名类型|
C:\Documents and Settings\Me\My Documents\C++Projects\C++\RandomSentence\Nouns.cpp|9|错误:否 类中声明的“std::string Nouns::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;
}
你需要
#include <string>
<iostream>
声明cout
、cin
,而不是string
。
Nouns.h
不包括 <string>
,但它需要。您需要添加
#include <string>
位于该文件的顶部,否则编译器第一次遇到时不知道
std::string
是什么。
您需要添加:
#include <string>
在你的头文件中。
通知
#include <string.h>
不是
#include <string>
区别在于
// C and C++ include "old" C-style string functions such as strlen, strcmp
#include <string.h>
在另一端
// C++ only for the "new" features of the string class named std::string
#include <string>
您需要添加
#include <string>
在这里,您尝试访问
string noun::
,但没有创建名为 string noun
的命名空间。
您正在尝试访问私人文件。