gpt4 book ai didi

c++ - 就我而言,多重继承是一种好的设计模式吗?

转载 作者:太空宇宙 更新时间:2023-11-04 13:01:30 25 4
gpt4 key购买 nike

我有以下问题:我想让多个 Windows 都显示某种功能图。假设一个窗口应显示坐标轴并具有一些交互功能,另一个窗口也应显示坐标轴并具有设置对话框。

我的直觉是如何将 Window 实现为一些类,它使用我的框架(在我的例子中是 VTK)、一些虚拟继承类 来初始化基本窗口WindowWithAxisWindowInteractingWindowWithSettingsDialog 然后有

  • A 类继承WindowInteractingWindowCoordinateAxis
  • B 继承 WindowWithSettingsDialogWindowCoordinateAxis

所以通过互联网阅读我现在到处都看到(例如谷歌风格指南),我只应该在 Window, WindowInteracting, WindowCoordinateAxis 的情况下这样做WindowWithSettingsDialog都是纯抽象类/接口(interface)。

这就是我不明白的地方。这是否意味着不允许我实际实现这些类,并且我必须在类 A 中实现 WindowWindowCoordinateAxis 的所有功能B 类(以及使用这些的所有其他类)?这对我来说似乎不是一个干净的解决方案。

这种“菱形继承”应该是比较常见的问题,那么我有什么办法可以解决这个问题呢?

最佳答案

一般原则是避免代码/功能重复并提高可重用性。在您的情况下,WindowInteractingWindowCoordinateAxis 类都具有相同的功能(来自窗口)。相反,要么定义一个名为 IInteractingIHasTheCoordinateAxis 的接口(interface)(具有纯虚函数的类)并提供它们的具体实现,要么使您的 Window 类根据传递的参数表现不同。

关于c++ - 就我而言,多重继承是一种好的设计模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44050700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com