我不太懂a[6]()这样表示什么意思

图一

img


图二

img


我不太懂a这样表示什么意思,按我的理解直接a[6]就能输出值。

因为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"。

有用望采纳