С++ "std::string не объявлен" error
Я искал ответ на сайтах, но не смог найти ответа, который помог мне.
У меня есть код, который использует строки, когда я пытался (например, предложил) добавить эти строки:
using namespace std;
using std::string;
#include <string>
Я попытался использовать каждого из них отдельно, и я попробовал их все вместе. Лучшей ситуацией было то, что все ошибки строки исчезли, но у меня была другая странная ошибка в строке "using std::string", и ошибка была: std::string не была объявлена.
Есть идеи? Спасибо, ребята.
Ответы
Ответ 1
Сначала поместите #include <string>
.
Избегайте утверждений using
в заголовках, поскольку вы потенциально можете принести всевозможные вещи во многие единицы компиляции. using std::string
, возможно, приемлемо в заголовке, но using namespace std
, конечно, не, поскольку это вызовет столько загрязнений пространства имен во всех единицах компиляции. Пространство имен std постоянно расширяется (смотрите все новые материалы на С++), поэтому вы не хотите исправлять множество ошибок при обновлении своего компилятора.
Ответ 2
include
должен появиться перед using
#include <string>
using namespace std;
//using std::string; <-- Needless