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

时间:2010-03-18 13:54:35

标签: language-agnostic inheritance oop multiple-inheritance

我们遇到这种情况:


                    Window  Keyboard
                    ^         ^
                    |        /
                    ApplicationWindow 

所以

class Window { }
class Keyboard { }
class AppWindow : public Window, public Keyboard { }

现在,键盘想要访问 ApplicationWindow 中的属性,例如,它想要调用ApplicationWindow的 getWidth()属性。< / p>

我的解决方案是在键盘中放置指向 ApplicationWindow 的指针。

我正在尝试使用多重继承作为composition,而我知道实际的构成更受鼓励,我想尝试MI。

在任何情况下,如果我仍使用合成,我需要从键盘获取 ApplicationWindow 实例的反向链接。

1 个答案:

答案 0 :(得分:1)

我想说将属性移动到基类键盘会更清晰。

ApplicationWindow也可以访问它,因为ApplicationWindow扩展了Keyboard。

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