2012-07-22 34 views
0

嗨,我正在閱讀Don Box的書「Essential COM」。我的問題是關於IUnknown中的QueryInterface方法。雖然我知道類型轉換的實現被轉移到了屏蔽客戶端類型轉換代碼的接口上,但我不明白其中的原因。本書在第一章中說,RTTI的實現因編譯器而異,因此在IUnknown中有QueryInterface方法的動機。然而,在客戶端進行投射有什麼問題。我的意思是隻需要實現是跨供應商,交叉編譯器和跨平臺,客戶端代碼不必具有任何這些約束,因此也可以在客戶端進行轉換。任何深入瞭解這一點將不勝感激。組件對象模型查詢Interace

感謝, 阿卜杜勒

回答

0

在多重繼承的存在的鑄造需要實施的知識,所以它不能是純粹的客戶端。 (所需要的幾乎是一個動態演員陣容。)

現有機制還允許有用的實現技術,即鑄造不會 - 例如QueryInterface的結果可以是一個完全獨立的對象,可能在飛行中創建。