【发布时间】:2017-08-04 10:57:14
【问题描述】:
我有一个设计问题。我有一个类 G 继承自使用模板类 Base 和类 Z 生成的类 Base :
class G : public Base<Z>
现在我想创建一个新类 G2,它与 G 相同,但拥有更多方法。这些方法依赖于从 Z 继承的类 Z2 的属性和方法。基本上,我想向 G2 和 Z2 添加一些方法,而不是向 G 或 Z 添加一些方法。
目前我对如何解决这个问题的唯一想法是将类 G 模板化。我觉得,既然 Z2 继承自 Z,应该有一个更聪明的方法来做到这一点。
有什么方法可以在不模板化 G 类或复制粘贴代码的情况下实现这一点?
【问题讨论】:
-
您的术语似乎有误。您的问题中描述的任何内容实际上都不是“专业化”,因为它众所周知并与 C++ 模板一起使用。不言而喻,每个人都需要使用相同的词汇,才能得到一个有意义的问题答案。请使用正确的术语重新表述您的问题。如果您实际上是专攻某事,请总结一下它是如何专攻的。否则,请在适当的地方使用正确的术语——继承、实例化等。
标签: c++ templates inheritance