在C++中,NETBeANEIDE抛出“无法解析标识符字符串”
我遇到了一些我感到困惑的错误 有一个函数声明,Netbeans IDE不断抛出一个错误在C++中,NETBeANEIDE抛出“无法解析标识符字符串”,c++,function,declaration,C++,Function,Declaration,我遇到了一些我感到困惑的错误 有一个函数声明,Netbeans IDE不断抛出一个错误 string GetValue(const std::string& key); 我得到的错误是- 无法解析标识符字符串 我做错了什么?试试这个 std::string GetValue(const std::string& key); 最好是在头文件中添加名称空间,这样就不必在代码中的任何地方都限定std名称空间。include 包括 使用名称空间std 字符串GetValu
string GetValue(const std::string& key);
我得到的错误是-
无法解析标识符字符串
我做错了什么?试试这个
std::string GetValue(const std::string& key);
最好是在头文件中添加名称空间,这样就不必在代码中的任何地方都限定std名称空间。include
包括
使用名称空间std
字符串GetValueconst字符串和键
就这些我想您已经记得包含标题了:
#include <string>
或
其他答案是正确的,但我不建议使用 使用名称空间std;相反,只需将所有使用字符串的调用重命名为std::string
这更简洁,有助于自动完成。称之为std::string。使用namespace std或std::string在返回值上指定名称空间我完全支持在.cpp文件中添加任何您想要的名称空间,在大多数情况下都会鼓励这样做,但我也坚决反对用它们污染头文件。我不希望我使用的随机包含,包括其他内容,包括其他内容,然后使用名称空间std,这可能会重新定义代码中许多内容的含义。我想-1是为了建议在头中添加名称空间,而不是为了正确的原型。我同意这是一个坏主意-见我上面的评论。最好?这是我第一次听说,事实上,不是相反吗?正如Kevin在下面暗示的那样,在CPP文件中使用名称空间通常很好,但在头文件中则不行,因为它会迫使所有使用头文件的人都使用名称空间,从而污染全局名称空间。是的,在我看来,我很想知道是否有一个编译器足够聪明,如果它在.h文件中看到一个正在使用的名称空间,就会抛出一个错误。我会一直打开编译器选项。可能存在,也可能不存在。
std::string GetValue(const std::string& key);
using namespace std;
string GetValue(const string& key);