嗨,我正在阅读 Don Box 的书“Essential COM”。我的问题是关于 IUnknown 中的 QueryInterface 方法。虽然我知道类型转换的实现被移动到接口以屏蔽客户端类型转换代码,但我不明白这是为什么。这本书在第一章中说,RTTI 的实现因编译器而异,因此在 IUnknown 中有 QueryInterface 方法的动机。但是,在客户端进行强制转换有什么问题。我的意思是只要求实现是跨供应商、跨编译器和跨平台的,客户端代码不必有任何这些约束,因此也可以在客户端进行转换。对此的任何见解将不胜感激。
谢谢, 阿卜杜勒