クラスの相互定義について
Posted: 2009年11月15日(日) 00:25
はじめてですがよろしくお願いします。
現在C++でゲームを作っているところなのですが最近までC#を使っていたので勝手が全くわからなくなってしまいました。
わからないところは以下のようになっています。
以下のファイルはヘッダファイルの切り抜きです
Playerクラスはプレイヤ情報を持つクラスで相手のプレイヤ情報のアドレスを持ちます
また自身のもつキャラクタ(不定数となるのでvectorを使っています)の配列を持ちます
Characterクラスはキャラクタ情報を管理します
親となるプレイヤクラスのアドレスを所持します
このときキャラクタクラスはPlayerクラスの宣言前に行っているのでエラーが出てしまいます
またPlayerクラスとキャラクタクラスを逆にすると今度はプレイヤクラスの中のキャラクタクラスのvectorでエラーがでてしまいます
この2つを問題なく宣言するにはどうすればいいでしょうか
あと最近までC#でやってたのでアドレス関係もあっているかわからないです
C++は久々で質問としてちんぷんかんぷんなことを書いているかもしれませんがよろしくお願いします
現在C++でゲームを作っているところなのですが最近までC#を使っていたので勝手が全くわからなくなってしまいました。
わからないところは以下のようになっています。
以下のファイルはヘッダファイルの切り抜きです
class Character
{
private:
Player *player;
public:
};
class Player
{
private:
Player *enemy_player;
std::vector<Character> character;
public:
};
上のプログラムは問題の部分だけを切り抜いたところになっていますPlayerクラスはプレイヤ情報を持つクラスで相手のプレイヤ情報のアドレスを持ちます
また自身のもつキャラクタ(不定数となるのでvectorを使っています)の配列を持ちます
Characterクラスはキャラクタ情報を管理します
親となるプレイヤクラスのアドレスを所持します
このときキャラクタクラスはPlayerクラスの宣言前に行っているのでエラーが出てしまいます
またPlayerクラスとキャラクタクラスを逆にすると今度はプレイヤクラスの中のキャラクタクラスのvectorでエラーがでてしまいます
この2つを問題なく宣言するにはどうすればいいでしょうか
あと最近までC#でやってたのでアドレス関係もあっているかわからないです
C++は久々で質問としてちんぷんかんぷんなことを書いているかもしれませんがよろしくお願いします