2009-02-19 54 views
1

假設你有兩個程序集(兩個dll)。第一個包含一個名爲Base的類,第二個包含一個名爲Derived的類,它從Base公開繼承。公共繼承和tlb文件

當我使用tlb文件在Visual Studio 2005中創建C++類時,我得到了Base和Derived類,但其中一個不是另一個的子類。似乎沒有任何IS-A關係。是否有一個原因?

回答

2

我在這裏假設,兩個程序集通過COM與另一個通信,如果確實如此,那麼你是正確的,COM中沒有關於CLASS繼承的IS-A關係,只有在關於接口繼承。

如果您要定義從IBase派生的接口IBase和IDerived,那麼您將能夠在實現兩者的同一個對象上將IDerived轉換爲IBase。

+0

或者Derived剛剛實現IBase會怎麼樣。這不夠好嗎? – criddell 2009-02-19 21:48:08