我一直在寻找网站上的答案,但找不到任何帮助我的答案。
我有一个代码,当我尝试(如建议)添加这些行时使用字符串:
using namespace std;
using std::string;
#include <string>
我试图单独使用它们,我一起尝试了所有这些。最好的情况是当所有的字符串错误消失但我在“使用std :: string”这行时有另一个奇怪的错误,错误是:std :: string尚未声明。 有任何想法吗?谢谢你们。
答案 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