おそらくこれは基本的な誤解ですが、次の行は私を混乱させます。
return *static_cast<MockBehavior*>(COMPOSITE::m_Children[index]);
この行は正確に何をしているのですか?
おそらくこれは基本的な誤解ですが、次の行は私を混乱させます。
return *static_cast<MockBehavior*>(COMPOSITE::m_Children[index]);
この行は正確に何をしているのですか?
タイトルと質問テキストに一貫性がないように見えますが、この行はCOMPOSITE::m_Children[index]
(COMPOSITEはある種の名前空間またはクラスである必要があります)で示されるポインターを受け取り、ポインター型をにキャストしMockBehavior*
、それを逆参照して、参照MockBehavior
オブジェクトを生成します。次に、これはおそらく値によって返され(ここでも、質問には重要な必要なコンテキストがありません)、質問に示されていないオブジェクトタイプのコピーコンストラクターが呼び出されます。
COMPOSITE::m_Children[index]
それが何であれ、アクセスしています。うまくいけば、何かへのポインタの配列。
次に、そのポインターを へのポインターに変換しようとしますMockBehavior
。最後に、そのポインターを逆参照し、結果を返します。
this を含む関数が値によって返される場合、 のコピー コンストラクターが必要になりますMockBehavior
。