我有一个基类Attr
(属性),它有两个派生类NomAttr
(Nominal属性)和NumAttr
(数值属性)。如何设计具有不同返回类型的基类和派生类?
每个都有一个name
成员,它总是字符串类型。
然而,他们的value
成员不同:对于NomAttr
,我想它的value
的string
类型,但对于NumAttr
,我想它的value
的double
类型。
虚拟函数不允许不同的返回类型,所以我有点卡在这里。 (起初,我得出以下UML到我的意图模型。)
很多人问我,以显示真正的问题。以下是全球视图:
这是机器学习者。 Attr
是数据集中实例的一部分:
A DataSet
由Ins
(实例)列表组成。
Ins
由Attr
s的列表组成,Attr
的计数和每个Attr
的类型在运行时是已知的,从用户使用命令行参数提供的数据文件解析。
在这里你去:
您可以使用模板。 – 2015-03-31 15:12:10
我建议返回提升任何或增强变体。 – imreal 2015-03-31 15:13:24
你能展示你正在尝试解决的真正问题和使用'Attr'的上下文吗? C++是强类型的,并不直接支持你想要做的事情,但根据REAL的需要,可以使用各种机制(可能是静态或动态多态)。 – 2015-03-31 15:14:36