函数指针做为参数的例子

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




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值