C++/CLI では、次のようなクラス階層が必要です。
Foo
FooA : Foo, ClrClassA
FooB : Foo, ClrClassB
FooA が (CLR 以外の) 基本クラスを共有しながら、別の CLR クラスから継承することは可能ですか? そうでない場合、FooA と FooB が共通のコードを共有するための最良の方法は何でしょうか?
C++/CLI では、次のようなクラス階層が必要です。
Foo
FooA : Foo, ClrClassA
FooB : Foo, ClrClassB
FooA が (CLR 以外の) 基本クラスを共有しながら、別の CLR クラスから継承することは可能ですか? そうでない場合、FooA と FooB が共通のコードを共有するための最良の方法は何でしょうか?
一般的に言えば、構成は、より緊密に結合されていない設計につながる傾向があるため、継承よりも優れていることがよくあります。
マネージコードとアンマネージコードを混在させている場合、私の経験では、一般的に、アンマネージコードをマネージコードでラップする方が、その逆よりも簡単です。
マネージコードでは多重継承はサポートされていません。ウィキペディアに理由を説明する記事があります。
マネージC++と、クラスおよびクラスベースのオブジェクトの使用は、VisualC++と同様に引き続き普及しています。Managed C ++でのこれに対する唯一の大きな変更は、多重継承の機能がサポートされていないことです。これは、CLRの制限によるものです。CLRのガベージコレクターの下で管理されるクラスは、複数のクラスを継承できません
クラスを組み合わせる理由を知らずに、クラス/機能を組み合わせる最善の方法について良い答えを出すことは困難です...
参照型とネイティブ型の両方からクラスを継承させることはできません。