C++如何使用相同的函数两次使用不同的名称和变量的不同名称

标签 c++ class templates function variables

我有一个命令设备的函数。该设备可以使用两次,因此我需要两个设备具有相同的功能。出于维护原因,我不想为函数编写两次代码(每个设备一个),因为那样我总是需要应用更改两次。

这些函数在原则上是相同的,但应该对不同的变量起作用。是否可以用一种“可变”名称实例化此函数,类似于模板但不是类而是名称? 我试着提供一个例子。它应该看起来像这样。

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/

相关文章:

c++ - 当一个类继承自一个在 C++ 中所有成员都是私有(private)的类时,该类的大小是多少?

angular - 在 typescript 中定义抽象类的类型

python - Python中的类是否在不同的文件中?

c++ - 将 Variadic 模板包转换为 std::initializer_list

c++ - 指向 cv 和/或 ref 限定成员函数的指针的 Typedef

c++ - 实现在模板参数中定义的类型

c++ - 带有 decltype : bug in clang or gcc? 的 sfinae

c++ - 分配二维字符数组

C++ Ncurses 显示计时器

c++ - 字符串不会用 cout 打印