函式指標做為引數的例子
阿新 • • 發佈:2019-02-01
1
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; }