解析
1.声明了函数指针pfunc,它接受两个int参数,返回int值
int (*pfunc)(int i,int j);
2.下面定义的两个函数与pfunc有相同类型的返回值和对应的形参
//返回两数之和的函数
int myplus(int i, int j)
{
return i + j;
}
//返回两数之差的函数
int myminus(int i, int j)
{
return i - j;
}
3.在main()中,定义一个元素类型是pfunc的vector
vector<decltype(pfunc)>funs;
4.将两数和、两数差函数指针作为vector的元素
funs.push_back(&myplus);
funs.push_back(&myminus);
5.传入参数都是1,2。打印结果
for (auto x = funs.begin(); x != funs.end(); x++)
{
cout << (*(*x))(1, 2) << endl;
}
6.运行结果
完整代码
#include<iostream>
#include<vector>
using namespace std;
//声明了函数指针pfunc,它接受两个int参数,返回int值
int (*pfunc)(int i,int j);
//下面定义的两个函数与pfunc有相同类型的返回值和对应的形参
//返回两数之和的函数
int myplus(int i, int j)
{
return i + j;
}
//返回两数之差的函数
int myminus(int i, int j)
{
return i - j;
}
int main(void)
{
//定义一个元素类型是pfunc的vector
vector<decltype(pfunc)>funs;
//将两数和、两数差函数指针作为vector的元素
funs.push_back(&myplus);
funs.push_back(&myminus);
//打印结果
for (auto x = funs.begin(); x != funs.end(); x++)
{
cout << (*(*x))(1, 2) << endl;
}
}