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;
}