前方宣言を使用できる/できない場合についてはかなり明確ですが、まだ1つのことがわかりません。
クラス A のオブジェクトを逆参照するために、遅かれ早かれヘッダーを含める必要があることを知っているとしましょう。
class A;
class B
{
A* a;
void DoSomethingWithA();
};
そして、cppには次のようなものがあります..
#include "A.hpp"
void B::DoSomethingWithA()
{
a->FunctionOfA();
}
それとも、最初に A のヘッダーを B のヘッダー ファイルに含めるだけでよいでしょうか? 前者の方が効率的である場合は、誰かが理由を明確に説明してくれれば幸いです。なぜなら、それは私がもっと学ぶことでいつでもできるコンパイルプロセスと関係があると思われるからです。