gpt4 book ai didi

c++ - C++中函数名的生成和调用

转载 作者:搜寻专家 更新时间:2023-10-31 00:12:57 25 4
gpt4 key购买 nike

我有 10 个具有通用名称的函数,它们返回如下引用:

int& function0();
int& function1();
...int& functionN();

如您所见,函数名称中只有一个字母发生变化。每个功能做不同的工作。我的用例有一定的长度,比如 L,我必须调用从 0 到 L 的函数。所以我想以某种方式生成这些函数名称并调用它们,而不是对基于 L 的所有函数调用进行硬编码。所以如果在一个循环中索引 i 从 0 到 L,对于每个 i 我想调用 functioni()。

我尝试过的一种方法是将这些函数存储到函数指针数组中,但这不起作用,因为这些函数返回引用并且引用数组是不可能的。我还尝试使用宏连接来生成函数名称,但这也是不可能的,因为宏不能在预处理时替换某些变量的值(MACRO(function,i) 不替换 i 的值,连接到 functioni)。

我如何在 C++ 中做这样的事情?

最佳答案

这在 C++ 中是不可能的,但在您的情况下,函数指针数组似乎是一个很好的解决方案:

typedef int& (* functionPtr)();
functionPtr functions[N];
// or without typedef: int& (* functions[N])();
functions[0] = foo; // assign a function named foo to index 0
int& i = functions[0](); // call function at index 0

关于c++ - C++中函数名的生成和调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28689785/

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