我正在制作一个win32 api程序。我首先创建了一个名为 WinClass 的基类,并从其中继承了十几个其他类。现在我需要从继承自基类 WinControl 和 WinHandler 的两个类创建一个派生类。因为我打算从原来的十几个派生出更多派生类,我我必须像从 WinClass 继承的每个类一样使用虚拟继承。那么有没有办法没有使用虚拟继承?
答案 0 :(得分:2)
了解如何避免过度使用继承。例如,阅读本文
http://berniesumption.com/software/inheritance-is-evil-and-must-be-destroyed/
开始学习如何按照自己的方式完成工作(正确使用继承)是“设计模式”一书:
答案 1 :(得分:0)
我首先创建了一个名为WinClass的基类,并从其中继承了十几个其他类。
这是你的第一个问题。如果WPF教会了我们什么,那么继承不一定是GUI设计的最佳模型。
有没有办法在不使用虚拟继承的情况下执行此操作?
是:没有WinControl
和WinHandler
来自WinClass
。你还没有说出这些做了什么,所以我不能就它们提出任何具体的建议。真的,看起来你需要的是一个“有一个”的关系,而不是继承带来的“是一种”关系。
此外,没有必要为类名使用粗体。只需使用StackOverflow提供的代码标记即可。也不需要以粗体显示 SHOUT 。