我有一个命令设备的函数。该设备可以使用两次,因此我需要两个设备具有相同的功能。出于维护原因,我不想为函数编写两次代码(每个设备一个),因为那样我总是需要应用更改两次。
这些函数在原则上是相同的,但应该对不同的变量起作用。是否可以用一种“可变”名称实例化此函数,类似于模板但不是类而是名称? 我试着提供一个例子。它应该看起来像这样。
void function_x (int Var, double Vary, ...) {
int var3_x = getFunctionFromDatabase(var3_x);
double var2_x = getFunctionFromDatabase(var2_x);
// some operations
}
这些函数由设备处理程序类的两个实例应用。 变量 var1_x、var2_x 和 var3_x 存储在数据池中作为 var1_1、var1_2、var2_1 ...“相同”变量,但每个设备一个。一个 Controller 通过这些变量和数据池命令两个设备。
这有可能吗?
我希望问题得到解决 ;)。这是我的第一个问题:P。 在此先感谢您的帮助。
最佳答案
为什么不用数组?例如
var1[0], var1[1], etc.
为您管理的每个设备使用一个数组元素。
你可以用宏做一些小 Action ,但我认为如果你使用数组,代码会更清晰。
即使变量位于您无法更改的库中,您也可以在初始化函数中设置指向原始变量的指针数组。例如:
var1[0] = &var1_0;
var1[1] = &var1_1;
然后,function_x 成为函数,并接受设备索引的参数。
关于C++如何使用相同的函数两次使用不同的名称和变量的不同名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7148638/