您的位置:首页 > 其它

函数指针做为参数的例子

2015-09-21 21:54 302 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: