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.h
en dan komt het type string
voor in de std
namespace, dus je moet std::string
gebruiken om ernaar te verwijzen.
Antwoord 3, autoriteit 9%
Omdat string
is gedefinieerd in de naamruimte std
. Vervang string
door std::string
, of voeg toe
using std::string;
onder uw include
regels toe.
Het werkt waarschijnlijk in main.cpp
omdat een andere header deze using
regel 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::string
heeft 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::string
of meer in het algemeen met using namespace std;