Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C+中的字符串+;错误C2061_C++_String_Compiler Errors_Header - Fatal编程技术网

C++ C+中的字符串+;错误C2061

C++ C+中的字符串+;错误C2061,c++,string,compiler-errors,header,C++,String,Compiler Errors,Header,我的头文件有问题。 由于某种原因,它给了我关于字符串的错误。 在页眉中。我有 #include <string> #ifndef HEADER_H #define HEADER_H class Player { public: string firstName; string lastName; int birthYear; string *matchDates; string toString(); void addMatc

我的头文件有问题。 由于某种原因,它给了我关于字符串的错误。 在页眉中。我有

#include <string>
#ifndef HEADER_H
#define HEADER_H
class Player
{
    public:
    string firstName;
    string lastName;
    int birthYear;
    string *matchDates;

    string toString();
    void addMatchDate(string date);
    Player();
    Player(string firstName, string lastName, int birthYear);
    ~Player();
};
#endif
#包括
#ifndef收割台
#定义标题
职业选手
{
公众:
字符串名;
字符串lastName;
int生日;
字符串*匹配日期;
字符串toString();
void addMatchDate(字符串日期);
Player();
播放器(字符串名、字符串名、整数生日);
~Player();
};
#恩迪夫
但天知道是什么原因,它给了我一大堆错误。 以下是一些错误:

Error C2146: syntax error : missing ';' before identifier 'firstName' Error C2146: syntax error : missing ';' before identifier 'lastName' Error C2061: syntax error : identifier 'string' 错误C2146:语法错误:缺少“;”在标识符“firstName”之前 错误C2146:语法错误:缺少“;”在标识符“lastName”之前 错误C2061:语法错误:标识符“字符串”
如何解决这个问题?名称字符串在标准名称空间std中定义

因此,在类定义之前使用指令

using std::string;
或指定限定名称

std::string

每当您使用此类型时。

使用限定名称(
string
是在命名空间
std
中定义的):
std::string
。哦,所以我可以使用命名空间std添加。请参阅@user3194111更愿意限定名称:
std::string
,以了解hmjd链接中的原因。另外,将
include
放在
#ifndef
保护内(这并不是说它会产生显著的差异,但保护的目的是隐藏文件中的所有内容,以免被看到两次)。谢谢大家的帮助!我还发现在Test.cpp中创建函数toString时有一个问题,其中包括“Header.h”、string和iostream。已声明命名空间std。但是当尝试创建函数时,Player::toString(){}我会收到错误,错误是:错误C2371:'Player::toString':重新定义;不同基本类型错误C2556:“int-Player::toString(void)”:重载函数仅在返回类型上与“std::string-Player::toString(void)”不同。错误C4430:缺少类型说明符-假定为int。注意:C++不支持默认int