《c++primer》--函数指针练习6.54-57

原文地址:
https://blog.csdn.net/qq_5027...

#include
#include
#define NDEBUG
using namespace std;

//练习6.54-6.57 定义函数
int fun1(int a, int b) {
    return a + b;
}

int fun2(int a, int b) {
    return a - b;
}

int fun3(int a, int b) {
    return a * b;
}

int fun4(int a,int b){
    return a / b;
}

void compute(int a, int b, int p(int,int)) {//函数指针作形参,函数类型会自动转换成指向函数的指针,也可写成void compute(int a, int b, int (*p)(int,int))
    cout << p(a, b) << endl;
}

int main() {
    typedef int (*func)(int a, int b);
    vector v = {&fun1,fun2,fun3,fun4};//函数名作为一个值时,&是选加
    for (auto s : v) {
        compute(10, 2, s);
    }

    return 0;
}

你可能感兴趣的:(c++)