#include<iostream>usingnamespace std;voidfunc1(){
cout <<"This is function 1"<< endl;}voidfunc2(){
cout <<"This is function 2"<< endl;}voidinvokeFunction(void(*func)()){func();}intmain(){// 动态选择要调用的函数int choice;
cout <<"Enter 1 for func1, 2 for func2: ";
cin >> choice;if(choice ==1){invokeFunction(&func1);}elseif(choice ==2){invokeFunction(&func2);}return0;}
回调函数
#include<iostream>#include<vector>#include<algorithm>usingnamespace std;voidprintNumber(int num){
cout << num << endl;}voidforEach(vector<int>& vec,void(*func)(int)){for(int i =0; i < vec.size(); i++){func(vec[i]);}}intmain(){// 使用回调函数打印向量中的所有数字
vector<int> vec ={1,2,3,4,5};forEach(vec,&printNumber);return0;}
函数指针作为函数返回值
#include<iostream>usingnamespace std;// 定义加法函数intadd(int x,int y){return x + y;}// 定义减法函数intsubtract(int x,int y){return x - y;}// 定义乘法函数intmultiply(int x,int y){return x * y;}// 声明函数指针类型typedefint(*Operation)(int,int);// 定义返回函数指针的函数
Operation getOperation(char op){switch(op){case'+':return&add;case'-':return&subtract;case'*':return&multiply;default:returnNULL;}}intmain(){// 获取加法函数指针
Operation op =getOperation('+');// 使用函数指针执行操作int result =op(2,3);// 输出结果
cout <<"Result: "<< result << endl;return0;}