包括一个字符串作为头文件中函数的参数?C++

Nou*_*ura 2 c++

我有这个头文件,zeeheader.h,我在其中写了一些类,我在将字符串作为参数给其中一个函数时遇到了问题:

class DeliTest
{

public:

    void DeliCheck(Stack*,string);
    void ComCheck (unsigned,string);
    bool EofCheck (unsigned,string);
};
Run Code Online (Sandbox Code Playgroud)

当我在cpp文件中实现它时,我添加了#include,它似乎正在工作,例如:因为我正在编写"数据".我得到了intellisense出现的"length()",所以我认为它有效,但事实并非如此.我得到的错误如下:

语法错误:'DeliTest'中找不到标识符'string'重载的成员函数

这是cpp文件中的一个函数:

bool DeliTest::EofCheck(unsigned i, string data)
{

    if (i == data.length()-1)
        return 1;
    return 0;

}
Run Code Online (Sandbox Code Playgroud)

我应该在头文件中添加一些内容吗?

小智 7

在头文件中,您需要:

#include <string>
Run Code Online (Sandbox Code Playgroud)

字符串存在于std:; 命名空间,所以你的函数应该是这样的:

void DeliCheck(Stack*, std::string);
Run Code Online (Sandbox Code Playgroud)

虽然按值传递字符串并没有错,但正如您所做的那样,通过const引用传递它们是更常见和更好的做法:

void DeliCheck(Stack*, const std::string & );
Run Code Online (Sandbox Code Playgroud)