0

こんにちは、ドン ボックスの本「Essential COM」を読んでいます。私の質問は、IUnknown の QueryInterface メソッドに関するものです。型キャスト コードからクライアントを保護するために、型キャストの実装がインターフェイスに移動されたことは理解していますが、その理由はわかりません。この本は、最初の章で、RTTI の実装はコンパイラによって異なるため、IUnknown に QueryInterface メソッドを含める動機になっていると述べています。ただし、クライアント側でキャストを行うことの何が問題になっていますか。つまり、実装がクロス ベンダー、クロス コンパイラ、クロス プラットフォームであることのみが必要であり、クライアント コードにはこれらの制約が必要ないため、キャストはクライアント側でも行うことができます。これについての洞察をいただければ幸いです。

ありがとう、アブドゥル

4

1 に答える 1

0

多重継承が存在する場合のキャストには、実装に関する知識が必要であるため、純粋にクライアント側にすることはできません。(必要なのは、ほぼ動的なキャストです。)

既存のメカニズムでは、キャストではできない便利な実装手法も使用できます。たとえば、QueryInterface の結果は、おそらくその場で作成された、完全に別のオブジェクトになる可能性があります。

于 2012-07-22T22:16:04.940 に答える