c++ 函数指针与回调函数

 函数指针

函数指针的声明:表明指定的函数返回类型、表明函数的特征标(参数列表)
注意:只有当一个函数的返回类型和参数列表和声明的函数指针的返回类型和参数列表一致的时候才可以进行传递,编译器拒绝这种赋值。
例如:

int get_sum(int a, int b);
int (*ptr)(int, int); // 声明函数指针ptr

 简单示例:

int Func(string name)
{
    cout << name << endl;
    return 1;
}

int main() { 
    // 定义指针函数 参数string,返回int
    int (*funPtr)(string);
    funPtr = Func;
    // c++ 调用
    funPtr("c++");
    // c调用
    (*funPtr)("c");  
    return 0;
}

 

 

回调函数

 通过使用函数指针来实现回调函数,传入的方法参数格式必须和函数指针一样,类似于c#的委托

void Func(string name)
{
    cout << name << endl;
}

void show(void (*call)(string))
{
    // 经过一系列的逻辑处理之后回调Func方法
    call("cehi");
}

int main() {

    show(Func);
    return 0;
}

 

posted @ 2022-12-10 18:07  安静点--  阅读(34)  评论(0)    收藏  举报