当前位置: 首页 > 知识库问答 >
问题:

两个版本的程序取决于输入参数,没有代码重复

游鸣
2023-03-14
//-----------------------------------------------------------
// Create object sensor based on input
if(data.sensors_tipe == "Uniaxial_025") Sensor_Uniaxial_025 sensor(data);
else if (data.sensors_tipe == "T_rosette_05") Sensor_T_rosette_05 sensor(data);
else report.error("some error");

// rotation test
int element_index = 1;
double orientation_angle = 3.490658503988659;
sensor.rotate(element_index, orientation_angle);

共有1个答案

夹谷弘亮
2023-03-14

首先,使用if的解决方案可能没那么糟糕。它在每个函数调用上都是分支,但是应该很好地预测分支。

其次,如果实现方法A和方法B的函数大到无法内联,则使用函数指针。

否则,使用模板的静态多态性,方法A和方法B可以通过模板参数作为函数传递。

 类似资料:
  • 问题内容: 我有一个项目,其中有两个使用sqlline的单独模块和另一个依赖jline的库(例如OtherLib)。但是在不同版本上。 Module1使用Sqlline取决于 jline 2.10 Module2使用OtherLib取决于 jline 0.9.94 并且这两个版本不兼容。因此,我设置了类路径,以便Module1首先在 $ HOME / lib / module1 文件夹中搜索,而M

  • 我想知道是否有某种命令或函数可以导入,允许我根据输入值多次运行命令。这可能没有任何意义,但希望从这里↓ 这对我不起作用,我不知道如何让它起作用。

  • 问题内容: 有没有办法在nodejs应用中设置版本?我想要这样的东西 问题答案: 我发现以下代码片段最适合我。由于它用于加载,因此无论当前工作目录如何,它都可以工作。 @Pathogen提供的警告: 使用Browserify这样做会带来安全隐患。 注意不要将您的信息公开给客户端,因为这意味着您的所有依赖项版本号,构建和测试命令以及更多信息都将发送给客户端。 如果要在同一项目中构建服务器和客户端,则

  • 我读到,如果我们想在google play中更新应用程序,版本代码应该高于之前的apk文件。我有一个版本代码为20,版本名为1.0的应用程序。所以要更新应用程序,我应该如何增加版本代码?应该增加10吗?还是一个就够了?也就是说,版本代码从20到30还是版本代码从20到21?

  • 问题内容: 我正在尝试使用六个将python2软件包移植到python3(不是我自己的),以使其与两者兼容。但是,requirements.txt中列出的软件包之一现已包含在python3 stdlib中,而pypi版本在python3中不起作用,因此我想有条件地将其排除。在setup.py中执行此操作很容易,我可以执行以下操作: 但我也希望Requirements.txt也能反映正确的列表。我在

  • 我将dataSource作为的实例,并以作为驱动程序类连接到。 我的作业配置如下: 我有writer作为和正确的配置。 我不确定我遗漏了什么,请告诉我该如何修复这个问题。如果需要更多的信息,请让我知道。