- 762 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 21:03:35 ]
- >>759
struct IHoge {virtual ~IHoge();}; struct IFoo : IHoge {}; struct IBar : IHoge {}; class Piyo : IFoo, IBar {}; Piyo piyo; このとき、(IHoge*)(IFoo*)&piyo == (IHoge*)(IBar*)&piyoが 真になるとは限らないということを許容できないなら、仮想継承を使うべきと言っておく。 処理系間や多言語間での互換性を高めるため、仮想継承を使っていないMSのCOMでは、 これが理由でポインタの比較が面倒(仮想継承の代わりに規約で縛りを入れて対処している)。
|

|