C++多条件语句 - 合并

Oli*_*ver 1 c++

我根据规范编写了一个程序.
规范有大约3种类型,每种类型在每个点上都有不同的处理方式.

这或多或少意味着代码可读性,我写的如下所示,现在我的问题是,如果你有200个这样的语句,将它们全部合并为一个"if enum-type x"是不值得的.

我相信有一个程序已经做到了但谷歌对这个具体问题没有多大帮助.提前感谢您的帮助.

/* Point 1.15 Filling Customers bdate */

if(current.identifier == APPLE){ output.setValue(1.15, additionalObj.some.color)}
if(current.identifier == PLUM){ output.setValue(1.15, otherObj.another.color) }
if(current.identifier == GRAPE){ output.setValue(1.15, default::color) }


/* Point 1.16 Filling Customers cash*/

if(current.identifier == APPLE){ do whatever}
if(current.identifier == PLUM){ do whatever}
if(current.identifier == GRAPE){ do whatever}
Run Code Online (Sandbox Code Playgroud)

要取得的成果:

if(current.identifier == APPLE){ output.setValue(1.15, additionalObj.some.color) 
                                 do whatever
}
Run Code Online (Sandbox Code Playgroud)

等等,所以我可以自动将它们合并为1个语句,而我仍然拥有可读代码

编辑:我可能误导了你,它实际上不是一个类型,它只是一个带有字符串标识符和SubObjects的对象所以我不能使用多态.我已经调整了上面所以你可以看到我想要实现的目标.

ksm*_*ing 5

如果您还没有理解它们,请阅读C++类继承和多态.C++的这两个功能将提供一种更优雅的方式来解决您的问题.