如何不使用虚拟继承?

时间:2011-07-12 07:55:14

标签: c++ oop winapi inheritance virtual

我正在制作一个win32 api程序。我首先创建了一个名为 WinClass 的基类,并从其中继承了十几个其他类。现在我需要从继承自基类 WinControl WinHandler 的两个类创建一个派生类。因为我打算从原来的十几个派生出更多派生类,我我必须像从 WinClass 继承的每个类一样使用虚拟继承。那么有没有办法没有使用虚拟继承

2 个答案:

答案 0 :(得分:2)

了解如何避免过度使用继承。例如,阅读本文

http://berniesumption.com/software/inheritance-is-evil-and-must-be-destroyed/

开始学习如何按照自己的方式完成工作(正确使用继承)是“设计模式”一书:

http://c2.com/cgi/wiki?DesignPatternsBook

答案 1 :(得分:0)

  

我首先创建了一个名为WinClass的基类,并从其中继承了十几个其他类。

这是你的第一个问题。如果WPF教会了我们什么,那么继承不一定是GUI设计的最佳模型。

  

有没有办法在不使用虚拟继承的情况下执行此操作?

是:没有WinControlWinHandler来自WinClass。你还没有说出这些做了什么,所以我不能就它们提出任何具体的建议。真的,看起来你需要的是一个“有一个”的关系,而不是继承带来的“是一种”关系。

此外,没有必要为类名使用粗体。只需使用StackOverflow提供的代码标记即可。也不需要以粗体显示 SHOUT