【C++】函数指针

2023年8月18日,周五上午

今天在B站看Qt教学视频的时候遇到了


目录

  • 语法
  • 和typedef或using结合
  • 我的总结

语法

返回类型 (*指针变量名)(参数列表)

以下是一些示例来说明如何声明不同类型的函数指针:

声明一个不接受任何参数且返回void的函数指针:

void (*ptr)();

声明一个接受一个整数参数且返回int的函数指针:

int (*ptr)(int);

声明一个接受两个整数参数且返回float的函数指针:

float (*ptr)(int, int);

声明一个接受一个字符串参数且返回void的函数指针:

void (*ptr)(const std::string&);

和typedef或using结合

使用类型别名typedef或using来定义函数指针类型,可以提高代码的可读性和灵活性。

此外,可以更方便地在多个地方复用同一类型的函数指针。

// 使用typedef定义函数指针类型
typedef void (*FunctionPointer)(int);

// 使用using定义函数指针类型
using FunctionPointer = void (*)(int);

在上面的代码中使用了两种不同的方式来定义函数指针类型FunctionPointer,

它表示一个接受一个整数参数且返回void的函数指针类型。

然后,可以使用这个类型别名来声明函数指针变量:

#include

typedef void (*FunctionPointer)(int);

using FunctionPointer = void (*)(int);

void someFunction(int a){
	std::cout<

【C++】函数指针_第1张图片

我的总结

感觉函数指针就是给函数起别名:

通过创造一个和函数在返回值、参数列表方面一样的函数指针,

就可以通过声明一个这样的函数指针来指向该函数,

此后,就可以用这个函数指针的名字来调用该函数。

这不就是给函数起别名吗。

你可能感兴趣的:(#,C++未分类,c++,开发语言)