当前位置: 首页 > news >正文

【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<iostream>typedef void (*FunctionPointer)(int);using FunctionPointer = void (*)(int);void someFunction(int a){std::cout<<a<<std::endl;
}int main(){FunctionPointer ptr;ptr=someFunction;ptr(5);
}

我的总结

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

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

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

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

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

http://www.lryc.cn/news/130631.html

相关文章:

  • VBA技术资料MF45:VBA_在Excel中自定义行高
  • 【Git】Git中的钩子
  • java 工程管理系统源码+项目说明+功能描述+前后端分离 + 二次开发 em
  • Java # JVM
  • vscode远程连接Linux失败,提示过程试图写入的管道不存在(三种解决办法)
  • elaticsearch(1)
  • 使用pnpm workspace管理Monorepo架构
  • Ubuntu16.04-ros-kinetic环境搭建笔记=1=
  • 应用层自定义协议(组织数据的格式)
  • 5种常见的3D游戏艺术风格及工具栈
  • 【玩转Linux操作】crond的基本操作
  • 设置Linux 静态IP
  • JMeter接口自动化测试实例—JMeter引用javaScript
  • javascript期末作业【三维房屋设计】 【源码+文档下载】
  • 数组详解
  • 【记录COCO数据集格式】实例分割的annotations.json的内部格式
  • mac 关于获取手机信息 终端指令
  • ios消息推送例子
  • LabVIEW开发最小化5G系统测试平台
  • 如何用输入函数为数组赋值
  • 【Python COM】Word 自动纵向合并相同内容单元格
  • maven 环境变量的配置
  • flutter-设置开屏页 解决开屏白屏问题
  • 简单理解Linux中的一切皆文件
  • Kubernetes的endpoint
  • 第四章,向量组,2-矩阵等价与向量组等价的关系
  • Flink源码之StreamTask启动流程
  • 【BASH】回顾与知识点梳理(三十)
  • 亿赛通电子文档安全管理系统任意文件上传漏洞复现
  • java:数据库连接池