是否有必要进行多重继承的场景?请提供示例。
答案 0 :(得分:4)
如果你想模拟其他OOP语言所具有的接口,那么你需要使用多重继承。
答案 1 :(得分:2)
任何“需要”继承,并且您希望在单个类中多次使用或在单个类中组合的“需要”多重继承。
使用继承的常见C ++习语包括:
boost::noncopyable
模拟动态绑定。因此,如果您希望单个类实现多个接口,那么您需要多个继承。如果您需要基于策略的迭代器类型,那么您需要多次继承(一次用于策略,一次用于特征)。
我把“要求”放在窃听引号中,因为很明显在所有情况下你都可以编写一个具有相同输出的程序,并且不使用多重继承(“图灵完成是我们所关心的”参数)。然而,图灵的完整性并不是我们所关心的所有,我们通常都有编写软件的目标,而不仅仅是图灵的输入和输出程序概念。我们关心源的样子。因此,“必要”。
答案 2 :(得分:1)
使用纯抽象类,您可以拥有接口,就像使用Java或C#
一样答案 3 :(得分:0)
当开发人员懒惰并且不想产生不需要多继承的更好的类设计时;-)我主要用C#编写代码并且从未发现导致我诅咒其设计的场景单继承。
话虽如此,能够实现多个接口 非常方便。
答案 4 :(得分:0)
除了图灵机之外,没有任何其他方法必要。
答案 5 :(得分:0)
构建COM对象时。