gpt4 book ai didi

c++ - 推广 C++ 代码的有效方法(2D 计算到 3D 计算)

转载 作者:行者123 更新时间:2023-11-28 00:23:44 28 4
gpt4 key购买 nike

我正在编写一个 C++ 代码来进行 2D 和 3D 计算。主函数有一个参数,我可以从中判断是进行 2D 还是 3D 计算(dim=2dim=3)。启用/禁用基于 dim 编译特定代码段的最佳选择是什么?我找到了 this post建议使用 #ifdef,所以我想定义一个宏然后使用 #ifdef:

if( dim == 2 )
#define DISABLE_3D true

我确信有更好的方法来做到这一点,我很乐意拥有它。

最佳答案

您必须确定它们是编译时依赖的还是运行时依赖的。 #ifdef 宏依赖于编译时,因此将仅使用 2D 或 3D 功能构建程序。如果您需要一个在运行时同时适用于 2D 和 3D 计算的函数,您应该避免使用 #ifdef 宏。

而不是使用 if (dim==2) 决策,您可以使用 C++ 的“函数覆盖”功能。由于遗漏了很多细节,我无法给出具体的例子,但如果 2D 和 3D 数据存在差异,则可能暗示可以实现功能覆盖。

关于c++ - 推广 C++ 代码的有效方法(2D 计算到 3D 计算),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26132502/

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