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

0.简介

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

1.函数指针声明

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

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

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

带参数的如下写法。

void print(int a)
{
	cout <

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;
	fun_ptr fun = print;
	fun(10);
	return 0;
}

 

你可能感兴趣的:(C++语言,C语言,C++,函数指针,指针)