【发布时间】:2017-01-15 17:26:31
【问题描述】:
我是 C++ 新手,我的“设计”问题比实际代码更多:
我想编写一个适用于许多不同类型图形的程序,但是我想支持任何类型的顶点或权重(即顶点是字符串或字符,权重可以是 int、double 或 char 或甚至一堂课)。
为此,我编写了一个图形类模板,其中包含一组顶点和一个带有边及其权重和获取/设置函数的地图 - 然后我还有其他类,例如有限状态机图,从类模板“Graphs”继承的常规加权图等。 (在每个图中,我确切地知道顶点和权重的类型)
我这样做是因为扩展基类并从它继承似乎很自然。到目前为止它有效,但后来我想有什么意义?我可以在每个类中简单地创建这些通用图之一并像使用 STL 中的 ADT 一样使用它。
重点是,从类模板继承而不是仅仅在类中创建模板的新对象有什么好处(它本身不是通用的)?
【问题讨论】:
标签: c++ templates inheritance graph