任何人都可以帮我解决这个简单的代码吗?
#include <iostream>
using namespace std;
void testFunction(){
cout<<"This is the test function 0"<<endl;
}
void testFunction1(){
cout<<"This is the test function 1"<<endl;
}
void testFunction2(){
cout<<"This is the test function 2"<<endl;
}
void (*fp[])()={testFunction,testFunction1,testFunction2};
int main(){
//fp=testFunction;
(*fp[testFunction1])();
//cout<<"Addrees of the function pointer is:"<<*fp;
}
我收到以下错误:
error: invalid types `void (*[3])()[void ()()]' for array subscript|
答案 0 :(得分:7)
您正在尝试将函数指针用作数组索引。那不会飞,数组索引必须是整数。
要通过函数指针调用,只需调用:
(*fp[1])();
或(甚至更短!)
fp[1]();
会奏效。
答案 1 :(得分:2)
我想你打算写:
(*fp[1])();
也就是说,使用int而不是函数本身来索引数组。
答案 2 :(得分:2)
使用函数指针索引函数的数组fp
,尝试类似:
(*fp[some_index])();
代替