Подтвердить что ты не робот

Идентификатор "string" undefined?

Я получаю сообщение об ошибке: идентификатор "string" undefined.

Однако я включаю string.h, и в моем основном файле все работает нормально.

CODE:

#pragma once
#include <iostream>
#include <time.h>
#include <string.h>

class difficulty
{
private:
    int lives;
    string level;
public:
    difficulty(void);
    ~difficulty(void);

    void setLives(int newLives);
    int getLives();

    void setLevel(string newLevel);
    string getLevel();
};

Может кто-нибудь объяснить мне, почему это происходит?

4b9b3361

Ответ 1

<string.h> - старый заголовок С. С++ предоставляет <string>, а затем его следует называть std::string.

Ответ 2

Вы хотите сделать #include <string> вместо string.h, а затем строка типа живет в пространстве имен std, поэтому вам нужно будет использовать std::string для ссылки на нее.

Ответ 3

Потому что string определяется в пространстве имен std. Замените string на std::string или добавьте

using std::string;

ниже ваших строк include.

Вероятно, он работает в main.cpp, потому что у другого заголовка есть эта строка using (или что-то подобное).

Ответ 4

Возможно, вы хотели #include<string>, а не <string.h>. std::string также требуется квалификация пространства имен или явная директива using.

Ответ 5

Вы забыли пространство имен, на которое вы ссылаетесь. Добавить

using namespace std;

чтобы избежать std::string все время.

Ответ 6

Вы должны использовать пространство имен std. Если этот код в main.cpp вы должны написать

using namespace std;

Если это объявление находится в заголовке, тогда вы не должны включать пространство имен и просто пишите

std::string level;

Ответ 7

#include <string> будет правильным С++ include, также вам нужно указать пространство имен с std::string или, более общо с using namespace std;