我必须编写一些财务应用程序,我必须在其中表示流程表。流可以是 3 种类型:
- 费用流(只是在某个日期一次性付款)
- float 利率流量(流量取决于日后确定的利率)
- 固定利率流量(流量取决于交易完成时确定的利率)
我需要保留全部信息,并且需要表示这些流程的时间表。
本来想用继承,创建三个类FeeFlow
, FloatingFlow
, FixedFlow
全部继承自 ICashFlow
并实现一些方法 GetFlowType()
返回一个枚举然后我可以 dynamic_cast
对象到正确的类型。
那将允许我只有一个 vector<IFlow>
代表我的日程安排。
您如何看待这个设计,我是否应该使用三个 vector vector<FeeFlow>
, vector<FloatingFlow>
和 vector<FixedFlow>
避免动态转换?
最佳答案
为什么您实际上需要动态转换?让您的流子类以多态方式实现相同的接口(interface),那么就不需要强制转换任何东西。
如果他们需要非常不同的输入,您可以尝试将不同的输入作为构造函数参数传递,从而清理公共(public)接口(interface)。然而,如果你真的不能为它们定义一个公共(public)接口(interface),也许它们作为独立的类来实现会更好。
关于c++ - 现金流的财务建模中的继承与特定类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2988628/