C ++“std :: string尚未声明”错误

时间:2013-06-11 08:55:29

标签: c++ string

我一直在寻找网站上的答案,但找不到任何帮助我的答案。

我有一个代码,当我尝试(如建议)添加这些行时使用字符串:

using namespace std;
using std::string;
#include <string>

我试图单独使用它们,我一起尝试了所有这些。最好的情况是当所有的字符串错误消失但我在“使用std :: string”这行时有另一个奇怪的错误,错误是:std :: string尚未声明。 有任何想法吗?谢谢你们。

2 个答案:

答案 0 :(得分:12)

先放#include <string>

避免在标头中使用using语句,因为您可能会将各种内容引入许多编译单元。标题中可能接受using std::string,但using namespace std 肯定不是,因为它会在所有编译单元中造成如此多的命名空间污染。 std命名空间不断扩展(查看C ++中的所有新内容),因此您不希望在升级编译器时修复大量错误。

答案 1 :(得分:1)

include应该在using

之前
#include <string>
using namespace std;
//using std::string; <-- Needless