函数指针做为参数的例子
2015-09-21 21:54
302 查看
1
2
2
#include <iostream> using namespace std; void f1(){std::cout<<"---f1---"<<endl;} void f2(){std::cout<<"---f2---"<<endl;} void f3(){std::cout<<"---f3---"<<endl;} typedef void (*Menu)(); int main() { Menu a[]={f1,f2,f3}; for(int i=1;i;) { std::cout<<"1----display f1"<<endl; std::cout<<"2----display f1"<<endl; std::cout<<"3----display f1"<<endl; std::cout<<"Enter your chioce:"<<endl; cin >> i; switch (i) { case 1:a[0]();break; case 2:a[1]();break; case 3:a[2]();break; case 0:return 0; default :std::cout<<"you entered a wrong key.\n"; } } return 0; }
#include <iostream> using namespace std; typedef void (*FuncPtr)(void); void fn() { cout << "void fn()" << endl; } int main() { cout << "第一种定义形式" << endl; void (*p)(); //定义函数指针,不是声明 p = fn; //初始化 ,,初始化时注意函数参数和返回值类型要一致 p(); cout << "第二种定义形式" << endl; void (*pt)() = fn;//定义函数指针,并且初始化, 初始化时注意函数参数和返回值类型要一致 pt(); cout << "第三种定义形式" << endl; FuncPtr fp = fn; //定义返回值和参数都为空的函数指针,并初始化 ,,初始化时注意函数参数和返回值类型要一致 fp(); return 0; }