创建一个函数指针,该函数指针将函数指针作为参数

时间:2010-07-07 22:46:43

标签: c++ function-pointers

如何创建一个以函数指针作为参数的函数指针(c ++)??? 我有这个代码

    #include <iostream>
using namespace std;

int kvadrat (int a)
{
    return a*a;
}
int kub (int a)
{
    return a*a*a;
}
void centralna (int a, int (*pokfunk) (int))
{
    int rezultat=(*pokfunk) (a);
    cout<<rezultat<<endl;

}

void main ()
{
    int a;
    cout<<"unesite broj"<<endl;
    cin>>a;
    int (*pokfunk) (int) = 0;
    if (a<10)
        pokfunk=&kub;
    if (a>=10)
        pokfunk=&kvadrat;

    void (*cent) (int, int*)=&centralna; // here i have to create a pointer to the function "centralna" and call the function by its pointer

    system ("pause");
}

3 个答案:

答案 0 :(得分:8)

你会发现输入函数指针更容易。

typedef int (*PokFunc)(int);
typedef void (*CentralnaFunc)(int, PokFunc);
...
CentralnaFunc cf = &centralna;

答案 1 :(得分:3)

您需要使用函数指针类型作为参数的类型:

void (*cent) (int, int (*)(int)) = &centralna

答案 2 :(得分:2)

void (*cent)(int, int (*) (int) )=&centralna;