identifier “string” undefined?

Ik krijg de foutmelding: identifier “string” undefined.

Ik voeg echter string.h toe en in mijn hoofdbestand werkt alles goed.

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();
};

Kan iemand mij uitleggen waarom dit gebeurt?


Antwoord 1, autoriteit 100%

<string.h>is de oude C-header. C++ biedt <string>, en dan moet het worden aangeduid als std::string.


Antwoord 2, autoriteit 18%

Je wilt #include <string>doen in plaats van string.hen dan komt het type stringvoor in de stdnamespace, dus je moet std::stringgebruiken om ernaar te verwijzen.


Antwoord 3, autoriteit 9%

Omdat stringis gedefinieerd in de naamruimte std. Vervang stringdoor std::string, of voeg toe

using std::string;

onder uw includeregels toe.

Het werkt waarschijnlijk in main.cppomdat een andere header deze usingregel erin heeft (of iets dergelijks).


Antwoord 4, autoriteit 8%

Je bent de naamruimte vergeten waarnaar je verwijst. Toevoegen

using namespace std;

om std::string altijd te vermijden.


Antwoord 5, autoriteit 5%

Misschien wilde je #include<string>, niet <string.h>. std::stringheeft ook een naamruimtekwalificatie nodig, of een expliciete using-instructie.


Antwoord 6, autoriteit 4%

U moet de std-naamruimte gebruiken. Als deze code in main.cpp staat, moet je schrijven

using namespace std;

Als deze declaratie in de header staat, moet u geen naamruimte opnemen en gewoon schrijven

std::string level;

Antwoord 7, autoriteit 2%

#include <string>zou de juiste c++ include zijn, ook moet u de naamruimte specificeren met std::stringof meer in het algemeen met using namespace std;

Other episodes