![]() |
1
4
马克C是对的(和往常一样)。 直接多重继承即使在支持它的语言中也是非常相反的。在某些边缘情况下,编译器应该做什么,比如当两个父类定义同一个方法或成员的不同版本时,这是一个大问题。它是明确的 不 允许在ADA95中添加继承。 所以你的下一个问题是“我该怎么做我想做的?” 这取决于您试图通过使用多重继承来实现什么。在最糟糕(最复杂)的情况下,您通常可以通过“mixin”继承来获得所需的效果。我 有 以前做过,但我仍然认为在这篇adaic文章中解释得最好: Ada95 and Multiple Inheritance 我自己也做不到。 以下是摘要:
似乎ada 2005有另一种更简单的方法来实现这一点(“接口”),但我还没有机会尝试。您可以阅读更多关于它的信息(包括为什么Direct MI是 仍然 ADA认为不好) here . 我找到了这个例子。同样,只有当编译器支持ada 2005时,这才有效
|
![]() |
Silverspur · “X是Y的模糊基”:多重继承噩梦 7 年前 |
![]() |
Aedoro · 扩展多个类的C++函数参数 7 年前 |
|
user6022430 · Python3.4多重继承调用特定构造函数 9 年前 |
![]() |
Mark van der Wilk · 用于重写继承方法的Mixin 9 年前 |
![]() |
pasha · 是否可以为复制基的虚拟函数提供不同的定义? 9 年前 |
![]() |
Daniel · 如何使继承从父类到子类python34起作用 9 年前 |