Ich bin neu in C++ und kann diesen Fehler nicht herausfinden.C++ Making Pointer der Klasse
Ich versuche, einen Zeigertyp für die Klasse Player
zu machen. Von allen Tutorials, die ich gesehen habe, sollte dies die richtige Syntax sein, um einen Zeiger vom Typ Player
in einer Header-Datei zu deklarieren.
Player* player = new Player;
[EDIT, versehentlich vor fertig geschrieben]
Aber ich bekomme die Fehlermeldung „muss‚Klasse‘Tag verwendet, bezieht‚Spieler‘in diesem Bereich geben“. Ich habe #include "Player.h"
verwendet.
Was geht hier vor?
EDIT Alle diese geben dem gleichen Fehler
Player* player;
Player* player = new Player;
Player* player = new Player();
Diese Header-Datei für Player
#ifndef PLAYER_H
#define PLAYER_H
#include <vector>
#include <string>
#include <iostream>
#include "Item.h"
#include "GlobalDefs.h"
class Player
{
public:
// constructor
Player(void);
// destructor
virtual ~Player(void);
inline gold_t GetGold(void)
{
return gold;
}
void AddGold(gold_t amount);
void RemoveGold(gold_t amount);
std::string GetInventoryString(void);
void AddItem(Item);
private:
gold_t gold;
Item item;
std::vector <Item> inventory;
};
#endif /* PLAYER_H */
Dies ist der Header-Datei, in der sich der Zeiger (Player* player = new Player;
) definiert wird.
#ifndef STOREAREA_H
#define STOREAREA_H
#include "AreaAbstract.h"
#include "Player.h"
#include <iostream>
class StoreArea : public AreaAbstract{
typedef void (StoreArea::*AreaInput)(void);
public:
StoreArea(*Player);
StoreArea();
~StoreArea();
void PrintAreaText();
bool RecieveInput(std::string);
protected:
void PurchaseHelm();
std::map <std::string, AreaInput> areaInputMap;
Player* player;
};
#endif /* STOREAREA_H */
C++ hat keine 'Klassenmarkierung (en)' –
Um "einen Zeiger zu machen" brauchen Sie nur 'Player * player;'. – juanchopanza
Wo wird 'Player' deklariert? Kannst du uns diesen Code zeigen? –