设计一个以统一方式返回多个接口的类



我有一个C++类,可以选择支持一些附加功能(由抽象接口定义)。在 COM Microsoft中,有一种方法可以使用 QueryInterface(GUID, void**) 向类请求此类功能。这需要将所有接口reinterpret_cast为 void*。我的问题是 - 有没有更安全的方法可以在不使用演员表的情况下实现相同的目标?

COM 需要从对象支持的任何其他接口获取任何接口。你不必按照这个要求生活。只需将 getter 添加到您希望支持的每个界面即可。

struct IBase
{
    IMoreCapabilities * GetMoreCapabilities();
};

最新更新