声明vector对象保存函数指针

#include <iostream>
#include <vector>

using namespace std;

//以下任意一种定义方式均合法
//using funcp = int(*) (int, int);
//typedef int(*funcp) (int, int);
//若已知目标类型为Func, 则可以
//int Func(int, int);
//typedef decltype(Func) *funcp;

vector<funcp>pvec;

int func_add(int a, int b){
    return a + b;
}

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

int main(){
    pvec.push_back(&func_add);
    pvec.push_back(&func_multi);
    cout << pvec[1](2, 3) << endl;
    return 0;
}

posted @ 2014-07-18 21:06  wu_overflow  阅读(392)  评论(0编辑  收藏  举报