Language agnostic 派生类链接器-这是错误的吗?

Language agnostic 派生类链接器-这是错误的吗?,language-agnostic,inheritance,oop,multiple-inheritance,Language Agnostic,Inheritance,Oop,Multiple Inheritance,我们有这样的情况: Window Keyboard ^ ^ | / ApplicationWindow 现在,键盘想要访问应用程序窗口中的属性,例如,它想要调用应用程序窗口的getWidth()属性 我的解决方案是在键盘中放置一个指向应用程序窗口的指针 我在这里尝试使用多重继承,虽然我知道实际的组合更受鼓励,但我想尝试MI 在任何情况下,如果我使

我们有这样的情况:

Window Keyboard ^ ^ | / ApplicationWindow 现在,键盘想要访问应用程序窗口中的属性,例如,它想要调用应用程序窗口的getWidth()属性

我的解决方案是在键盘中放置一个指向应用程序窗口的指针

我在这里尝试使用多重继承,虽然我知道实际的组合更受鼓励,但我想尝试MI


在任何情况下,如果我使用composition,我都需要一个从键盘应用程序窗口实例的反向链接。

我想说,将属性移动到基类键盘会更干净

ApplicationWindow也可以访问它,因为ApplicationWindow扩展了键盘


您不希望基类需要了解任何子类。

我想说,将属性移动到基类键盘中会更干净

ApplicationWindow也可以访问它,因为ApplicationWindow扩展了键盘


<>你不希望基类需要对任何子类有任何知识。

我会考虑修改这种设计。显然,你正在尝试把基类和它的衍生物结合起来。我会考虑修改这种设计。很明显,您试图将基类与其派生类耦合起来。我考虑过它,但对于这个特殊的问题,它是无法实现的:)这就是为什么我在问题中包括MI OK。我猜您的意思是,键盘不应该知道应用程序窗口的宽度。如果是这样的话,那就是设计出了严重的问题。是的,对于一个键盘来说,需要了解它所连接的屏幕听起来很奇怪:)。如果键盘需要widthOK,可能会有一个屏幕大小调整事件来设置键盘宽度或其他东西,但是给键盘提供屏幕宽度和屏幕高度的缓存副本是错误的吗?听起来怎么样?如果来自缓存,则可以根据初始窗口大小给出初始键盘值。我想你是对的,作文也会更好。我想了想,这个问题是无法解决的:)这就是为什么我在问题中包括MI OK。我猜您的意思是,键盘不应该知道应用程序窗口的宽度。如果是这样的话,那就是设计出了严重的问题。是的,对于一个键盘来说,需要了解它所连接的屏幕听起来很奇怪:)。如果键盘需要widthOK,可能会有一个屏幕大小调整事件来设置键盘宽度或其他东西,但是给键盘提供屏幕宽度和屏幕高度的缓存副本是错误的吗?听起来怎么样?如果来自缓存,则可以根据初始窗口大小给出初始键盘值。我想你是对的,作文也会更好。
class Window { }
class Keyboard { }
class AppWindow : public Window, public Keyboard { }