函数指针错误

时间:2010-03-31 08:41:38

标签: c++ function pointers

任何人都可以帮我解决这个简单的代码吗?

#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|

3 个答案:

答案 0 :(得分:7)

您正在尝试将函数指针用作数组索引。那不会飞,数组索引必须是整数。

要通过函数指针调用,只需调用:

(*fp[1])();

或(甚至更短!)

fp[1]();

会奏效。

答案 1 :(得分:2)

我想你打算写:

(*fp[1])();

也就是说,使用int而不是函数本身来索引数组。

答案 2 :(得分:2)

使用函数指针索引函数的数组fp,尝试类似:

(*fp[some_index])();

代替