ページ 11

ヘッダファイルの使い方

Posted: 2012年8月05日(日) 09:27
by AliceCoder
windows7 64bit,VC++でプログラミングしているんですけどヘッダファイルの正しい使い方が分からないです。
私は宣言のためにヘッダファイルを読み込むという認識でつかっております。
ところがこの前ヘッダ関係のエラーに始めてあいました。
とりあえず同じヘッダファイルを読み込んでいる部分を少なくしたらエラーが出なくなりました。今でも詳しい原因は分かりません。
VC++では#pragma onceというのがあって、一度しか読み込まないことを保障してくれる?っぽいので使いたいヘッダを今までヘッダに書き続けてました。

説明がすごく下手ですが何がききたいかというと
何のヘッダを読み込んでいるのか分かりやすくするために、必要なヘッダを全て書く行為は間違っているのかどうかです。
例~
Aクラスヘッダ <stdio.h>
Bクラスヘッダ <stdio.h>
Cクラスヘッダ <Aクラスヘッダ><Bクラスヘッダ><stdio.h>
ここでCクラスはstdio.hを3回読み込んでいることになっています。これでいいのかどうかという質問です。

Re: ヘッダファイルの使い方

Posted: 2012年8月05日(日) 10:53
by softya(ソフト屋)
必ず必要でもないヘッダをヘッダ中でインクルードをするのは余り良くありません。
ヘッダ中でヘッダをインクルードするのは止む負えない事情(ヘッダ中で他のヘッダで宣言された構造体を使っている場合)などに限定されると思ってください。
理由は可読性・メンテンナンス性が下がるからです。無駄な依存性は修正を厄介にします。

ヘッダに書くものはクラスや構造体やtypedefや定数など最低限のものに絞り込む必要があります。

Re: ヘッダファイルの使い方

Posted: 2012年8月05日(日) 11:12
by AliceCoder
softya(ソフト屋)さん回答ありがとうございました。
必要最低限のヘッダを読み込むことにします

Re: ヘッダファイルの使い方

Posted: 2012年8月05日(日) 11:16
by softya(ソフト屋)
AliceCoder さんが書きました:softya(ソフト屋)さん回答ありがとうございました。
必要最低限のヘッダを読み込むことにします
もしエラーが再現できるなら、ここに貼ってもらうとアドバイスできると思います。
ヘッダのインクルード順で起きる問題とかにも対象方法があります。

Re: ヘッダファイルの使い方

Posted: 2012年8月05日(日) 11:28
by AliceCoder
今のところ大丈夫です。もしまたエラーが起きたら質問しますね
ありがとうございました