组件对象模型查询接口

时间:2012-07-22 22:02:08

标签: c++ com

您好我正在阅读Don Box的书“Essential COM”。我的问题是关于IUnknown中的QueryInterface方法。虽然我知道类型转换的实现被移动到界面以屏蔽客户端和类型转换代码,但我不明白其原因。本书在第一章中说,RTTI的实现因编译器而异,因此在IUnknown中使用QueryInterface方法的动机也是如此。但是在客户端进行转换有什么问题。我的意思是只要求实现是跨供应商,交叉编译器和跨平台,客户端代码不必具有任何这些约束,因此也可以在客户端进行转换。任何洞察这一点将不胜感激。

谢谢, 阿都

1 个答案:

答案 0 :(得分:0)

存在多重继承的强制转换需要了解实现,因此它不能纯粹是客户端。 (所需要的几乎是动态演员。)

现有机制还允许使用有用的实现技术,例如,QueryInterface的结果可能是一个完全独立的对象,可能是动态创建的。