C++/CLI:从一个CLR类继承多个C++类

ant*_*ony 3 .net mixed-mode c++-cli multiple-inheritance visual-c++

在C++/CLI中,我想要一个类似于以下的类层次结构:

Foo
  FooA : Foo, ClrClassA
  FooB : Foo, ClrClassB
Run Code Online (Sandbox Code Playgroud)

FooA是否可以共享(非CLR)基类,同时还从单独的CLR类继承?如果没有,FooA和FooB分享公共代码的最佳方式是什么?

Jon*_*age 5

一般来说,组合通常比继承更好,因为它往往导致不太紧密耦合的设计.

如果您正在混合托管代码和非托管代码,那么根据我的经验,将非托管代码包装在托管代码中通常更容易,反之亦然.

托管代码不支持多重继承,维基百科有一篇文章解释了原因:

托管C++以及类和基于类的对象的使用在Visual C++中仍然很普遍.Managed C++中唯一的主要变化是不支持多重继承的功能.这是因为CLR的限制.在CLR的垃圾收集器下管理的类不能继承多个类

这是很难给出一个很好的答案,如何最好到你的类合并/功能不知道为什么你要的类结合...

  • 需要明确的是,托管类型不支持多重继承,也不支持从本机类型派生. (2认同)