分割コンパイルについて質問させてください。
いくつかのクラスを作っていて、それぞれクラスごとにヘッダとソースがあります。
クラスの中でお互いを引数とかメンバで持っているのでどこかで#includeをしないと
いけないと思うんですが、お互いに呼ばれあっているので一方を先に#includeすると
他方がエラーを起こし、逆にしても結局はエラーが起きます。
あまり複雑なプログラムを組んだことがないので混乱してきました。
分割コンパイルのセオリーのようなものがありましたら、ぜひ教えてください。
よろしくお願いします。

環境:VC++6.0