“字符串”类型无法解析Eclipse C ++

时间:2013-03-31 23:29:36

标签: c++ string

我正在尝试这样做:

#include <string>

class Medicine{

    string name;


};

但它根本不起作用。我尝试右键单击项目 - &gt;指数 - &gt;搜索未解决的包含,它说:未解决包含在项目中(0匹配)。它也不能用于std :: string。我该怎么办?

3 个答案:

答案 0 :(得分:5)

您应该使用其所属的命名空间(string)完全限定std

#include <string>

class Medicine {
    std::string name;
//  ^^^^^
};

或使用using声明:

#include <string>

using std::string; // <== This will allow you to use "string" as an
                   //     unqualified name (resolving to "std::string")

class Medicine {
    string name;
//  ^^^^^^
//  No need to fully qualify the name thanks to the using declaration
};

答案 1 :(得分:1)

string类(标题)是在std命名空间内定义的。您在对象声明中using std::string;之前缺少std::string

如果仍然无法解决问题,请查看this answer

答案 2 :(得分:0)

尝试创建一个新的控制台项目,并将其保存到下面这个简单的代码中。如果这不起作用那么可能你的eclipse没有正确设置c ++。 eclipse c ++环境的默认下载是http://www.eclipse.org/cdt/

#include "stdafx.h"//optional depending if you have precompiled headers in VC++ project
#include <string>

using std::string;

class Medicine
{
    string name;        
};

// or use this alternative main if one below doesn't work
//int main(int argc, _TCHAR* argv[])
int _tmain(int argc, _TCHAR* argv[])
{
    Medicine test;

    return 0;
}