C++函数指针写法和类型声明

0.简介

函数指针大多数用的不多,我觉得啊,但是实际上函数指针很有用,且用起来特别灵活优美。

1.函数指针声明

函数指针声明方式有点怪,一般就是如下。

void print()
{
	cout << "hello" << endl;
}
int main()
{
	void(*fun_ptr)() = print;//void为返回类型,第二个括号为参数列表,第一个括号是变量名
	fun_ptr();
	return 0;
}

在实际赋值的时候和普通数值指针没区别,使用的时候以函数调用的方式使用即可。

带参数的如下写法。

void print(int a)
{
	cout <<a<< endl;
}
int main()
{
	void(*fun_ptr)(int) = print;
	fun_ptr(10);
	return 0;
}

2.函数指针的类型定义

一般时候,我们可能不想到处写比较长的类型,所需需要一个我们自定义类型来表示某种函数指针类型,如下。

void print(int a)
{
	cout << a<< endl;
}
int main()
{
	typedef void(*fun_ptr)(int) ;
	fun_ptr fun = print;
	fun(10);
	return 0;
}

换成C++11的写法如下

void print(int a)
{
	cout << a<< endl;
}
int main()
{
	using fun_ptr = void(*)(int) ;
	fun_ptr fun = print;
	fun(10);
	return 0;
}

还有利用STL的function一种写法

void print(int a)
{
	cout << a<< endl;
}
int main()
{
	using fun_ptr = function<void(int)>;
	fun_ptr fun = print;
	fun(10);
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值