но в верхней части файла у меня есть #include <string>, так как я могу получить эту ошибку?
Ответ 1
string находится в пространстве имен std, вы должны использовать std::string или ввести его в область действия с помощью директив или использования объявлений.
Ответ 2
Использование
std::string var;
или
using namespace std;
string var;
Строка находится в пространстве имен std, поэтому вы должны сообщить своему компилятору.