#pragma once
#include <string>
class Player
{
public:
Player();
private:
};
并且cpp文件是:
#include "Player.h"
#include <iostream>
Player::Player()
{
}
当我在头文件中定义一个字符串并在头文件中向Player函数添加一个参数时,一切正常
#pragma once
#include <string>
class Player
{
public:
Player(string name);
private:
string _name;
};
但是当我在cpp文件中向Player函数添加相同的参数时
#include "Player.h"
#include <iostream>
Player::Player(string name)
{
}
我收到错误:标识符&#34;字符串&#34;未定义,我在头文件中也得到相同的错误,所以它也会影响它。我尝试在cpp文件中包含字符串以期解决问题,但它没有用。伙计们,我真的很想要一个解决方案。
答案 0 :(得分:6)
所有STL类型,算法等都在std
命名空间内声明。
要使代码编译,string
类型还应将命名空间指定为:
Player(std::string name); /* Most recommended */
或
using namespace std;
Player(string name); /* Least recommended, as it will pollute the available symbols */
或
using std::string;
Player(string name);