gpt4 book ai didi

c++ - 在代码库中替代多次使用 if-else

转载 作者:太空宇宙 更新时间:2023-11-04 07:24:41 28 4
gpt4 key购买 nike

我有大量代码可以处理某些参数的两个版本,比如 ver1 和 ver2。

版本是一个运行时字段,我打算保留它,这样我就不必使用不同的标志构建代码,并且相同的 lib 文件可以用于两个版本。

现在,有不同的字段适用于 ver1 和一些适用于 ver2。

所以在代码中我必须在多个地方做

if(ver1) {
// set fields specific to ver1
}
else {
// set fields specific to ver2
}

我不喜欢在代码中放置 so may if 语句的想法,因为代码看起来很难看。

还有其他选择吗?

我在想一些通用的内联/宏定义,其中仅当传递的标志为真时才设置字段?

此外,在优化方面,不应该比 if else 昂贵

@edit -- 代码内部组织的一些细节

无法发布代码的详细信息。但一个重要的事实是,它是一个巨大的遗留代码,需要通过向后兼容进行升级。

版本参数被传递给每个类来决定哪些字段被设置,哪些被忽略。

最佳答案

一种常用的解决方案是使用两个类来表示版本 1 和版本 2,并使用一个共同的基类来定义具有虚函数的接口(interface)。所以,你只得到一个 if/else,然后虚函数表负责选择正确的函数。

如果这不是一个合理的解决方案,那么我认为 if-else 是最清晰的方法。

关于c++ - 在代码库中替代多次使用 if-else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19265927/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com