“变量”变量名称c ++

时间:2015-08-08 02:16:03

标签: c++ arrays reflection concatenation

问题: 我一直在这里寻找一种方法来寻找一种方法来循环通过名为variable_1variable_2,....,variable_n的变量。基本上,我问是否有办法使用循环来实现variable_i,或者更具体地说,在我的情况下functionName_i

我需要什么:我正在尝试循环一个对象的数组来调用顺序命名并与对象数组并行的不同函数(即:obj [i] - > callback_i())

我所知道的:显然,这里的答案(如果它只是变量)是使用数组或向量。但是,如果可能的话,我需要以某种方式顺序连接函数的名称。

可能的解决方法:我想到的一切都可以追溯到创建函数指针的数组/向量。如果我真的没有选择,我可能会最终得到它,但我只是想我应该好奇地问。

明确问题:有没有办法使用变量int i作为函数名称的一部分来循环遍历顺序命名的函数?

谢谢!

1 个答案:

答案 0 :(得分:3)

没有

C ++通常不会在运行时存储类型或变量名称信息;如果是这样的话,那就不是可移植的(typeid()确实在编译器之间有所不同)或者它是不可能的。您不能在运行时引用变量名,除非您使系统执行此类操作,或者使用调试信息,这不是标准的C ++功能。

这种反射价格昂贵,更适合更高级别的语言。 C ++,作为一种更低级别的语言,剥离糖,只是告诉你“没有。”

如果你创建一个命名系统,你可以在C ++中创建这种类型的东西,但是通用的也需要变体,NULL/Maybe成语的版本,属性,检查,大量的调试,你可以做如果你愿意的话,这一切都可以,但你也可以转而使用另一种语言,这种语言已经有了你正在寻找的答案并将C ++绑定到它。

或者,使用矩阵或函数数组。 然后,按索引进行迭代。