假设您有两个程序集(两个dll)。第一个包含一个名为Base的类,第二个包含一个名为Derived的类,它公开继承自Base。
当我使用tlb文件在Visual Studio 2005中创建C ++类时,我获得了Base和Derived类,但其中一个不是另一个的子类。似乎没有任何IS-A关系。有这个原因吗?
答案 0 :(得分:2)
我假设这两个程序集通过COM与另一个程序集进行通信,如果确实如此,那么你是正确的,COM中没有关于CLASS继承的IS-A关系,只是在考虑接口继承。
如果你要定义一个从IBase派生的IBase和IDerived接口,那么你就可以在同一个实现两者的对象上投射IDerived到IBase。