【发布时间】:2012-10-29 09:32:15
【问题描述】:
我有两个班级 class A 和 class B。我希望 class B 具有 class A 的功能以及更多自己的功能。一种非常简单的方法是从 class A 继承 class B。但由于某些实现特定的原因,我不能这样做。
我想到了另一种解决方案,我将在其中创建另一个包含所有虚函数的类 class C。 类 A 和 B 将继承自 类 C。 class A 将包含虚函数的实现,class B 也可以定义相同的函数集,因此 class B 将具有以下功能A 级。 这是最佳解决方案吗?除了直接从 class A 继承 class B 之外,还有其他更好的解决方案吗?
【问题讨论】:
-
“但由于某些实现特定的原因,我不能这样做” 不是一个好的但经常(滥用)用于糟糕设计的借口。如果您的设计需要继承使用它并且如果某些实现阻止您这样做,请更改它。
-
“实施具体原因”是什么?
-
如果你可以控制 A 和 B 继承的内容(并且你必须按照你的 C-->A、C-->B 解决方案的建议)我不明白你为什么突然 缺少该控件来简单地让 A-->B 完成它。
标签: c++ inheritance virtual-inheritance