Re: ソースの分割 ( No.1 ) |
- 名前:優柔不断 日時:2007/10/14 14:58
長ければ分割したほうが楽になります。
基本的には、同名のソースファイルとヘッダーファイルを作り、コードはソース、
宣言はヘッダーに書くのがいいと思います。
統合開発環境では、新規作成などで作る方法で簡単に分割できるはずです。
|
Re: ソースの分割 ( No.2 ) |
- 名前:憂煉 日時:2007/10/14 18:49
僕が知っている手法は二通りです。
一つ目は優柔不断さんの通りにヘッダファイルとソースファイルを同名にして書く方法。
これは一般的で他のプログラムにソースを流用するのも容易です。
ただし、当然クラスや構造体のメンバ関数の定義はクラス外で行わなければなりません。場合によってはexternなども必要です。
二つ目はソースを一つにして他は全てヘッダにしてしまう方法。
これは小さいプログラムを作るときに使います。
クラスのメンバ関数をクラス定義の内部にそのまま書く事ができ、リンク作業がいらないので若干高速にメイクが終わります。また、externも必要ありませんし色々と楽です。ちょっとしたミニゲームならこちらをお勧めします。
ただーし、ソースの流用が利きにくく、大規模なプログラミングではかえって問題が増えるなど一般的には用いられません。
私は昔はプログラミングを教えてくれた先輩のやり方に従って後者の方法を使ってましたが、現在は組むプログラムの規模が大きくなってきたのでもっぱら前者です。
他にも方法があれば私も知りたいです。どなたかご存知ありませんかー?
|
Re: ソースの分割 ( No.3 ) |
- 名前:星樟八郎 日時:2007/10/19 17:57
自分の場合は、
a.h a.cpp b.cpp c.cpp d.cpp ...
というように、1つのヘッダファイルと複数のソースファイルに分割し、
ヘッダファイルには、複数のファイルにまたがる関数のプロトタイプ宣言等、
そしてソースファイルの最初の行に、"#include a.h"と書いたりします。
自分が実際にやってるやりかたはもっと複雑ですが、基本はこの方法です。
上の人の書き込みの場合。1つ目は、
a.h a.cpp b.h b.cpp c.h c.cpp ... ですかな?
この方法だと、同名のヘッダ&ソースファイルを1つにしても同じだと思ってましたが。
2つ目は、a.h b.h c.h ... a.cpp という感じ?
|
Re: ソースの分割 ( No.4 ) |
- 名前:星樟八郎 日時:2007/10/22 17:31
訂正。
"#include a.h"
は
#include"a.h"
とします。これだけ。
|
Re: ソースの分割 ( No.5 ) |
- 名前:優柔不断 日時:2007/10/22 18:58
僕の考え方は、もうちょっと詳しくは…
メインのソースとヘッダファイルを用意する。そこにはプログラム全体の宣言などを記述する。
(例えばπやe(自然対数の底)の定義とか)
そして、機能ごとにファイルを分けて、ソース、ヘッダのセットで分割する。
そして、ヘッダファイルには以下のようなものを記述します。
・関数プロトタイプ宣言(exturn不要)
・グローバル変数(exturn必要)
・クラス、構造体の定義
・インライン関数定義
・define定義
・名前空間の宣言
で必ず二重インクルード防止策を施します。
ヘッダファイルを分けることには以下のようなよいことがあります。
・機能ごとのデバッグが容易になる。
|