>>85
C/C++ ではヘッダでは定義なしの宣言だけにしておいて、対応するソースファイルで
定義を与えるという方法で重複コンパイルを避けるのが一般的。

C++ のテンプレートによってこの方法がうまく機能しにくい状況になっているので、
コンパイラによってはプリコンパイルドヘッダとか、あらかじめヘッダをコンパイルして
保存しておく機能を持っているものもある。