クラスに固定タイプのオブジェクトのコンポーネントがあると仮定します。コンポーネントをクラスの属性にする方法は2つあります。1つは、このタイプのabオブジェクトを指すポインターを使用することであり、もう1つは、オブジェクトを直接使用することです。ポインターを使用する場合、コンポーネントの型宣言のヘッダーファイルをインクルードする必要はありませんが、前方宣言のみを使用します。そして、それはより拡張可能です。私の質問はこれです:それにアクセスして使用するときのパフォーマンスはどうですか?最新のコンパイラーは、直接使用と同じまたは同様のパフォーマンスを持つように最適化できますか?それを決めるためのあなたの戦略は何ですか?
愚かな例
// Use pointer.
class A1 { ... };
class A2 { A1* a1; ... };
class A3 { A2* a2; ... };
class A4 { A3* a3; ... };
class A5 { A4* a4; ... };
// Direct use.
class B1 { ... };
class B2 { B1 b1; ... };
class B3 { B2 b2; ... };
class B4 { B3 b3; ... };
class B5 { B4 b4; ... };
より多くのレベルに行く可能性があります。パフォーマンスに大きな違いはありますか?どうもありがとう!