1人でゲームが作れるように修行します。2 (487レス)
1人でゲームが作れるように修行します。2 http://mevius.5ch.net/test/read.cgi/gamedev/1272901469/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
61: SGGK ◆6pZCoAtaxk [sage] 2010/07/26(月) 22:44:04 ID:HmEvw+7E >>57>>58>>59>>60 たぶんまだ正解ではないんだろうなという雰囲気が伝わってきたので、再考。 まず、>>58氏の#pragma onceを試して、もう一度soccergame.hをfieldplayercontrol.hにインクルードしてみたがやはり同じバグが発生。 でも、#pragma onceなら1行で、しかも同じ書き方でインクルードガードできるから便利。(感謝!、絞り込みも活用します。) 次に昨日書いた循環参照について。 soccergame.hをfieldplayercontrol.hにインクルードした時、soccergame.hの中では、FieldPlayerControlクラス型の実体を定義してるけど、 fieldplayercontrol.hの中でSoccerGameクラス型の実体を定義してはいないから、循環参照ではなかったかもしれないという気がしてきた。 お互いをインクルードしあってるだけでは循環参照に必ずしもなるとはいえないかもしれない。自信はないけど。 そこで、soccergame.hをfieldplayercontrol.hにインクルードした時のfieldplayercontrol.hの中身はどうなっているのかソースにして追いかけてみようとふと思った。 ひとつ気になった。 soccergame.hはその中で#include"fieldplayercontrol.h" してるので、soccergame.hをfieldplayercontrol.hにインクルードしたら、 fieldplayercontrol.h の中で #include"fieldplayercontrol.h"されるのだろうか? なぜなら、もともとのfieldplayercontrol.hは、#include"fieldplayercontrol.h"なんてしてないから、インクルードガードされないんじゃないかなと思ったので。 http://mevius.5ch.net/test/read.cgi/gamedev/1272901469/61
62: SGGK ◆6pZCoAtaxk [sage] 2010/07/26(月) 23:01:02 ID:HmEvw+7E そこで、「ヘッダファイルに同じヘッダファイルをインクルードできるか」のようなキーワードで何度か検索。 「ヘッダファイルは、自分とは別のヘッダファイルを #include でインクルードできるので、(略)」 という記述があったので、 それ前提でソースをエクセルに張って考えてみたら、自分としては今までで一番正解に近そうな答えが出た。 soccergame.hをfieldplayercontrol.hにインクルードしたときにsoccergame.hの中にある#include"fieldplayercontrol.h"がキャンセルされていたら、 soccergame.hからインクルードした部分の処理を進めているときは、まだFieldPlayerControlクラス型が宣言されてないから、 soccergame.hからインクルードした部分にFieldPlayerControl fieldplayercnt; と書いても、 「error C2146: 構文エラー : ';' が、識別子 'fieldplayercnt' の前に必要です。」 というエラーが出る…というのが答えかもしれない。 一応、エクセル→jpgでうp ttp://gamdev4.hp.infoseek.co.jp/cgi-bin/up/No_0129.jpg http://mevius.5ch.net/test/read.cgi/gamedev/1272901469/62
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.020s