是否有必要进行多重继承的场景?

时间:2009-07-15 18:40:24

标签: c++ inheritance multiple-inheritance

是否有必要进行多重继承的场景?请提供示例。

6 个答案:

答案 0 :(得分:4)

如果你想模拟其他OOP语言所具有的接口,那么你需要使用多重继承。

答案 1 :(得分:2)

任何“需要”继承,并且您希望在单个类中多次使用或在单个类中组合的“需要”多重继承。

使用继承的常见C ++习语包括:

因此,如果您希望单个类实现多个接口,那么您需要多个继承。如果您需要基于策略的迭代器类型,那么您需要多次继承(一次用于策略,一次用于特征)。

我把“要求”放在窃听引号中,因为很明显在所有情况下你都可以编写一个具有相同输出的程序,并且不使用多重继承(“图灵完成是我们所关心的”参数)。然而,图灵的完整性并不是我们所关心的所有,我们通常都有编写软件的目标,而不仅仅是图灵的输入和输出程序概念。我们关心源的样子。因此,“必要”。

答案 2 :(得分:1)

使用纯抽象类,您可以拥有接口,就像使用Java或C#

一样

答案 3 :(得分:0)

当开发人员懒惰并且不想产生不需要多继承的更好的类设计时;-)我主要用C#编写代码并且从未发现导致我诅咒其设计的场景单继承。

话虽如此,能够实现多个接口 非常方便。

答案 4 :(得分:0)

除了图灵机之外,没有任何其他方法必要

答案 5 :(得分:0)

构建COM对象时。