私はC++を使い慣れていないので、このエラーを理解することはできません。C++はクラス型のポインタを作成します
クラスPlayer
のポインタ型を作成しようとしています。私が見たすべてのチュートリアルから、ヘッダファイルにタイプPlayer
のポインタを宣言するための適切な構文でなければなりません。
Player* player = new Player;
[EDIT、誤って完成前に掲示]しかし、私はエラーが、「このスコープで 『プレーヤー』を入力し参照するために「クラスのタグを使用しなければなりません」を取得。私は#include "Player.h"
を使用しました。
ここでは何が起こっていますか?
EDIT は、これらのすべては、このポインタ(Player* player = new Player;
)が定義されているヘッダファイルである
Player* player;
Player* player = new Player;
Player* player = new Player();
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 */
用このヘッダファイルを同じエラーを与えます。
#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++にはclassタグがありません –
"ポインタを作る"ために必要なのは 'Player * player;'です。 – juanchopanza
'Player'はどこに宣言されていますか?そのコードを私たちに見せてもらえますか? –