ページ 11

龍神録のサンプルプロジェクトのファイルはどうして.hファイルと対になってない?

Posted: 2011年6月15日(水) 21:14
by deuinser
http://dixq.net/g/d_02.html
 「分割出来ています」と表示するだけの関数です。
このファイルにはこれを実行する Player_test関数 だけしかありません。

 そして、これから行うのがファイル分割で必要な重要な作業です。
ファイルは「.cpp」と「.h」(ヘッダファイル)を対で作ります(ファイル名を同じにするのが一般的です)
.cppファイルに実際の処理(関数の実体)を書き、ヘッダファイルにはその関数のプロトタイプ宣言を書きます。
プロトタイプ宣言とは「こういう関数がありますのでよろしく」とコンパイラに伝える為のものです。

 Player_test関数のプロトタイプ宣言をヘッダファイルに書いてみます。
ここを呼んでいたら疑問に思ったので質問させてもらいました。

GV.hが一元管理しているからですか?
もしよろしければ対にすると記述した理由と、
しない場合、どうすればいいのかを教えてください。
めんどくさい質問かもしれませんがよろしくお願いします

Re: 龍神録のサンプルプロジェクトのファイルはどうして.hファイルと対になってない?

Posted: 2011年6月16日(木) 08:20
by deuinser
すいません、本文に書いてありませんでしたが
龍神録プログラミングの館のプロジェクトと比較して、ということです。

Re: 龍神録のサンプルプロジェクトのファイルはどうして.hファイルと対になってない?

Posted: 2011年6月16日(木) 11:07
by softya(ソフト屋)
Dixq(管理人)さんが答えてくれると思ったのですが、私から一部勘でお答えしますね。

ヘッダとcppを対にする理由は、修正時の影響範囲を最低限にするためです。
それとどの構造体やenumなどが、どのプログラムに属するかを明確にするためでもあります。
あとモジュールを使い回すときに余分なものが入っていたら使い回しが効きません。

龍神録などがGV.hにまとめてある理由は、説明を簡単にするためなのかな?
ごめんなさい当人ではないのでやはり分かりません。

Re: 龍神録のサンプルプロジェクトのファイルはどうして.hファイルと対になってない?

Posted: 2011年6月16日(木) 19:41
by deuinser
ご回答ありがとうございます。
やはり、対にする必要は必ずしもないということですよね。
ということは閲覧者にわかりやすく説明するためだと思いますが、
例えばplayer.hとplayer.cppというファイルはplayer.hではなく他のファイルと共通のglobal.hファイルなどを作って記述内容を移すことでも可能ですか?
global.hには他にもstage.cppなどからのプロトタイプ宣言もされているとして・・・

Re: 龍神録のサンプルプロジェクトのファイルはどうして.hファイルと対になってない?

Posted: 2011年6月16日(木) 21:03
by Dixq (管理人)
龍神録の館では、なるべくファイル数を少なく、難しい構文は使わず、ポインタを使わず・・と意識して作り始めました。
まぁそんなことは不可能で途中からかなり無理やり感が出てきてしまいましたが・・。
確かな設計を学ぶより、まずは動くものを作って遊んでもらうという意図が強いです。

もちろん他に公開したい関数をヘッダにかいて、必要な翻訳単位にincludeさせるのが良いと思いますよ。
グローバル変数は使わなくても設計出来ますから、使わないにこしたことはありません。
グローバル変数を使わない設計については、ゲームプログラミングの館の設計のコーナーをご覧ください。
新・ゲームプログラミングの館ではデザインパターンやタスクシステム等も取り入れた、効率的な設計についても紹介していこうと思います。

Re: 龍神録のサンプルプロジェクトのファイルはどうして.hファイルと対になってない?

Posted: 2011年6月16日(木) 21:27
by softya(ソフト屋)
deuinser さんが書きました:ご回答ありがとうございます。
やはり、対にする必要は必ずしもないということですよね。
ということは閲覧者にわかりやすく説明するためだと思いますが、
例えばplayer.hとplayer.cppというファイルはplayer.hではなく他のファイルと共通のglobal.hファイルなどを作って記述内容を移すことでも可能ですか?
global.hには他にもstage.cppなどからのプロトタイプ宣言もされているとして・・・
global.hにまとめることは可能ですが、説明したとおり褒められた書き方とは言えません。
「他の人と共同作業をしない・プロのプログラマーに成らない・モジュールの使い回しを考えない」と言う個人作業に限定して考えればそれもアリです。
ただ悪い癖になるのでプログラマーとして生きていくなら避けた方が良いとは思います。

Re: 龍神録のサンプルプロジェクトのファイルはどうして.hファイルと対になってない?

Posted: 2011年6月16日(木) 22:45
by deuinser
とてもすっきりしました。
些細な疑問に答えてくださって本当にありがとうございます!

Re: 龍神録のサンプルプロジェクトのファイルはどうして.hファイルと対になってない?

Posted: 2011年6月16日(木) 22:46
by deuinser
解決とさせていただきます