我收到错误:标识符“string”undefined。
但是,我包括string.h,在我的主文件中,一切正常。
CODE:
#pragma once
#include <iostream>
#include <time.h>
#include <string.h>
class difficulty
{
private:
int lives;
string level;
public:
difficulty(void);
~difficulty(void);
void setLives(int newLives);
int getLives();
void setLevel(string newLevel);
string getLevel();
};
有人可以向我解释为什么会这样吗?
答案 0 :(得分:76)
<string.h>
是旧的C标头。 C ++提供<string>
,然后它应该被称为std::string
。
答案 1 :(得分:12)
您想要#include <string>
而不是string.h,然后类型字符串存在于std命名空间中,因此您需要使用std::string
来引用它。
答案 2 :(得分:8)
因为string
在命名空间std
中定义。将string
替换为std::string
,或添加
using std::string;
低于include
行。
它可能适用于main.cpp
,因为其他一些标题中包含此using
行(或类似内容)。
答案 3 :(得分:4)
也许你想要#include<string>
,而不是<string.h>
。 std::string
还需要命名空间限定或明确的using
指令。
答案 4 :(得分:3)
您忘记了所指的名称空间。添加
using namespace std;
一直避免使用std :: string。
答案 5 :(得分:2)
您必须使用std命名空间。如果main.cpp中的这段代码你应该写
using namespace std;
如果此声明在标题中,则不应包含命名空间,只需编写
std::string level;
答案 6 :(得分:1)
#include <string>
将是正确的c ++包含,您还需要使用std::string
或更多通常使用using namespace std;
指定命名空间