プロジェクトを小さな部分に分割して、1000バイト以上の読み込みができなくなったため、定義された.hと.cppで定義された定義を使用する必要があります。他のファイル。プロジェクトを.hと.cppに分割する
プロジェクトは、以下のファイルが含まれています:上記
main.cppに RPG.hと.cppファイル Hero.hと.cppファイル Globaldefs.hと.cppの
#ifndef Hero_h
#define Hero_h
#include "Globaldefs.h"
#include "RPG.h"
#include <vector>
using namespace std;
extern class NPC;
extern class Inventory;
class Hero
{
protected:
(...)
Inventory inventory;
(...)
public:
vector<Mob*>::iterator TryAttack(vector <Mob*>& monsters, int & number);
vector<NPC*>::iterator TryTalk(vector <NPC*>& _NPCs, int & number);
};
(...)
#endif
宣言はヒーローからです。 hファイルとコンパイラがラインインベントリインベントリのエラーを検出しました。 (そのクラスは外にあり、RPG.hで宣言され、RPG.cppで定義されています): 'Hero :: inventory'は未定義のクラス 'Inventory'を使用しますRPG d:\ programming \ rpg \ rpg \ rpg \ hero.h 23なぜMob(RPG.hと.cppの他のクラス)が適切に動作し、NPCもextern(RPG.hでも)として定義されているのか理解できません。未定義の型 '英雄' RPG dの使用:\プログラム\ \ RPG
#ifndef RPG_h
#define RPG_h
#include "Globaldefs.h"
#include "Hero.h"
#include <vector>
using namespace std;
class Mob;
class NPC;
class Fight;
class Item;
extern class Hero;
(...)
class Meat : public Item
{
(...)
public:
virtual void ActivateEffect(Hero* _hero) { _hero->AddHp(15); };
};
#endif
これはRPG.hファイルであり、そしてそこには、compilatorは何かが
virtual void ActivateEffect(Hero* _hero) { _hero->AddHp(15); };
がある行に間違っていたと述べていますrpg \ rpg \ rpg.h 97の左と ' - > AddHp'はクラス/構造体/共用体/汎用型のRPGを指していなければなりませんRPG d:¥programming¥rpg¥rpg¥rpg¥rpg.h 97
私は多くをリサーチしました誰でも簡単にmain.cppにファイルを追加することに問題があり、内部接続をファイル間で行わない。
main.cppに RPG.hと.cppファイル Hero.hと.cppファイル Globaldefs.hと.cppファイル:エディタfCKINとDは、私はコードとしてマークされ、それらなしに質問を投稿することができますいけません –