问题标签 [multiple-inheritance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1807 浏览

c++ - 用专门的版本覆盖多个继承的模板化函数

好的,先上示例代码;这是我试图传达我正在尝试做的事情,尽管它没有编译:

所以,我想做的是创建一种包装类来继承,它将自动将派生类连接到各种回调列表;它需要将派生类的特定实例连接到列表,并且我希望“用户”拥有/获取将回调函数作为创建派生类的一部分,如您所见。

看起来这应该可以工作,尽管我可能需要使用不同的语法。如果它不能工作,你有什么建议吗?

0 投票
9 回答
33483 浏览

c# - 使用与多重继承相关的接口的任何真实示例

我试图理解接口,以便我可以在我的程序中实现它们,但我无法想象我应该如何使用它们。也给我一些在 C# 中使用多重继承的例子

0 投票
4 回答
2524 浏览

c++ - 不同模板类型的多重继承

我正在处理 C++ 中的事件处理并处理事件通知,我有一个 EventGenerator 类,任何生成事件的类都可以从该类继承。EventGenerator 有一个其他类可以用来添加回调的方法和一个在事件发生时调用回调的方法

为了处理不同类型事件的通知,我在模板类型 T 上对 EventGenerator 进行了参数化,然后通知程序类可以从 EventGenerator 继承多次对不同类型进行参数化。

为了完整起见,这里是 EventGenerator 的代码



这是 EventListener 的代码,任何想要添加回调的类都继承自 -



我觉得这不是一个很好的设计,我想知道是否有更好的设计来解决这样的问题。

编辑:困扰的是我使用多重继承这一事实。我经常被警告不要使用它,所以我想我想就这样的设计是否会导致将来发生不好的事情发表意见

谢谢

0 投票
5 回答
1915 浏览

c# - 使用接口 C# 的多重继承

我正在尝试将两个类的选择性特征用于第三类。例如,我有创建精美按钮边框的 Button1 类和以彩色格式编写文本的 Button2 类。现在这些类是由我无法访问代码的 3rd 方供应商提供给我的。这些类不是密封的,所以我可以继承,并且两者都是从基 Button 类派生的。

现在我的要求是创建一个名为 Button3 的第三个类,它具有制作精美边框和彩色文本的功能。理想情况下,我会从这两个类继承并使用特定的功能。这在 C# 中是不可能的,因为它没有多重继承。

我正在阅读,在这种情况下,接口有助于实现结果。我会请人指导我如何在一个类中使用两个类的特定功能。

0 投票
3 回答
1026 浏览

c++ - C++ multiple inheritance off identically named operator

Is it possible to inherit identically named operator which only differ in return type, from two different abstract classes. If so, them:

  • what is the syntax for implementing operators

  • what is the syntax for using/resolving operators

  • what is the overhead in general case, same as for any other virtual function?

if you can provide me with a reference or sample code that would be helpful

thanks

block matrix needs to provide implementations for both operators, so that it is either a matrix or a block matrix, depending on the context. I do not know how to provide implementation specific to block_matrix class. right now, it is done by passing object wrapped type as the last argument, but that does not seem very clean. I would like to retain pure matrix notation.

0 投票
8 回答
8612 浏览

c++ - 使用 C++,我如何正确地从同一个基类继承两次?

这是我们理想的继承层次结构:

这是因为我们的继承层次结构会尝试从Foobar两次继承,因此,编译器会抱怨对Foobar.

请允许我解释一下为什么我想要这样一个复杂的模型。WindowsFoobar这是因为我们希望从、UnixFoobarFoobarClient和访问相同的变量FoobarServer。这不是问题,只是我想使用以上任意组合的多重继承,这样我就可以在任何平台上使用服务器/客户端功能,也可以在客户端或服务器上使用平台功能。

我不禁觉得这是多重继承的一个常见问题......我是从完全错误的角度解决这个问题吗?

更新1:

另外,考虑到我们可以用#ifdef它来解决这个问题,但是,这往往会产生非常丑陋的代码,如下所示:

......糟糕!

更新 2:

对于那些想要了解更多关于这个问题的背景的人,我真的建议浏览相应的邮件列表线程。事情开始在第 3 篇文章中变得有趣起来。还有一个相关的代码提交,您可以在这里看到有问题的真实代码。

0 投票
5 回答
1833 浏览

c++ - 使用`#ifdef`或继承进行交叉编译更好吗?

按照我之前关于虚拟和多重继承的问题(在跨平台场景中) - 在阅读了一些答案之后,我想到我可以通过保留服务器和客户端类来简化我的模型,并将平台特定的类替换为#ifdefs(这是我最初要做的)。

使用这段代码会更简单吗?这意味着至少会有更少的文件!缺点是它创建了一个有点“丑陋”并且稍微难以阅读Foobar的课程,因为到处#ifdefs都是。#ifdef请注意,我们的 Unix Foobar 源代码将永远不会传递给编译器,因此这与(因为我们还使用#ifdef来决定要调用哪个平台特定的类)具有相同的效果。

注意:为了更简单的示例,省略了一些东西(ctor 等)。

更新:

对于那些想要了解更多关于这个问题的背景的人,我真的建议浏览相应的邮件列表线程。事情开始在第 3 篇文章中变得有趣起来。还有一个相关的代码提交,您可以在这里看到有问题的真实代码。

0 投票
5 回答
34737 浏览

c++ - 继承共享方法名的接口

有两个基类具有相同的函数名。我想继承它们,并以不同的方式覆盖每种方法。如何使用单独的声明和定义(而不是在类定义中定义)来做到这一点?

我未能在 VC8 中将定义移出。我发现 Microsoft 特定关键字 __interface 可以成功完成这项工作,代码如下:

但是还有另一种方法可以在其他编译器中使用更通用的方法吗?

0 投票
3 回答
487 浏览

python - Python多重继承:动态做错了什么?

基于这个答案,如何__new__以及__init__应该如何在 Python 中工作,

我编写了这段代码来动态定义和创建一个新的类和对象。

基本上,因为__new__A 返回一个动态创建的继承 A 和 B 的 C,所以它应该有一个属性bar

为什么C 没有属性bar

0 投票
4 回答
47198 浏览

java - 如何从Java中的多个基类继承?

可能的重复:
在 Java 中作弊单继承!!
为什么 Java 或 C# 中不允许多重继承?
java中的多重继承

我知道我们可以使用接口从多个类继承,但也可以继承状态吗?
如何从 2 个类中继承具有定义的方法并将它们放在 Java 中的第三个类中?