错误:在 C++ 'std'使用未声明的标识符

error: use of undeclared identifier 'std' c++

本文关键字:未声明 标识符 std 错误 C++      更新时间:2023-10-16

我是C++编码的新手,我想做一个简单的口袋妖怪游戏。

我在头文件中创建了一个类,并在单独的.cpp文件中定义函数。

我还有一个主文件,我将在其中运行我的实际代码。

所以我在我的函数文件中定义了一个std::string函数,它说std是一个未声明的标识符。

以下是我的每个文件:

函数定义:

#include "fns.hpp"
int Pokemon::getHP() {
return hp;
}
int Pokemon::getAttack() {
return attack;
}
int Pokemon::getDefense() {
return defense;
}
int Pokemon::getSpecialAttack() {
return specialAttack;
}
int Pokemon::getSpecialDefense() {
return specialDefense;
}
int Pokemon::getSpeed() {
return speed;
}
std::string Pokemon::getAttack1() {
return attack1;
}
std::string Pokemon::getAttack2() {
return attack2;
}
std::string Pokemon::getAttack3() {
return attack3;
}
std::string Pokemon::getAttack4() {
return attack4;
}
Pokemon::Pokemon(int qhp,int qdefense,int qattack,int qspecialAttack,int qspecialDefense,int qspeed,std::string qattack1,std::string qattack2,std::string qattack3,std::string qattack4)
: hp(qhp),attack(qattack),defense(qdefense),specialAttack(qspecialAttack),specialDefense(qspecialDefense),speed(qspeed),attack1(qattack),attack2(qattack2),attack3(qattack3),attack4(qattack4) {}

函数声明:

class Pokemon {
int hp,attack,defense,specialAttack,specialDefense,speed;
std::string attack1,attack2,attack3,attack4;
public:
int getHP();
int getAttack();
int getDefense();
int getSpecialAttack();
int getSpecialDefense();
int getSpeed();
int getAttack1();
int getAttack2();
int getAttack3();
int getAttack4();
Pokemon(int qhp,int qdefense,int qattack,int qspecialAttack,int qspecialDefense,int qspeed,std::string qattack1,std::string qattack2,std::string qattack3,std::string qattack4);
};

每当我说std::string,它都说它是一个未声明的标识符。

有人可以帮我吗?

这是因为您没有使用库。

在头文件顶部使用以下内容

#include<string>