图一
因为a数组里存放的是function引用,直接用a[6]确实也能获取到值,不过这时拿到的是function对象。要想获取function执行后的返回值,就得用 a[6]()
,表示执行a数组下标为6的function。
在C++中,a6是一个函数调用,它调用了数组a的第6个元素,并将其视为一个函数并进行调用。如果这个元素是一个函数指针,则调用该指针所指向的函数;如果这个元素是一个函数对象,则调用该对象的函数调用运算符。
以下是一个示例:
#include <iostream>
void func1() {
std::cout << "Calling function 1" << std::endl;
}
void func2() {
std::cout << "Calling function 2" << std::endl;
}
int main() {
void (*a[10])() = {func1, func2};
a[6](); // 调用数组a的第6个元素,即func2函数
return 0;
}
在上面的示例中,定义了一个指针数组a,它的元素类型是void (*)(),也就是函数指针类型。数组a的第6个元素是一个指向func2函数的指针,当执行a6时,会调用func2函数并输出"Calling function 2"。
有用望采纳