c++ | function和 函数指针的区别

news/2025/2/23 5:04:53/

两者都能很快的实现对函数的调用,但是function 是c++11的特性,而函数指针是98就有的内容。

void func01(std::string str){std::cout<<str<<std::endl;
}
int main(){//一个简单函数指针的使用void (*ptrfunc)(std::string);ptrfunc = &func01;(*ptrfunc)("hello world");return 0;
}
//function 的使用
void func01(std::string str){std::ccout<<str<<std::endl;
}int main(){std::function<void(std::string)> fuc01 = func01;	//或者fuc01(func01)fuc01("hello world");//function还可以与lambda结合std::function<void(std::string)> fuc02 = [](std::string str)->void{return std::cout<<str<<std::endl;};fuc02("hello world");return 0;
}
//function与类成员函数结合
Test{
public:void func01(std::string){std::cout<<str<<std::endl;}
};int main(){std::function<void(Test*, std::string)> fuc01 = &Test::func01;Test t;fuc01(&t, "hello world");	//其实这个&t 是this 指针,因为有一个隐藏的this指针参数return 0;
}

还有function 和bind的结合
还会很精彩
后面续上


http://www.ppmy.cn/news/1008356.html

相关文章

Qt下开发基于QGIS的应用程序

Qt下开发基于QGIS的应用程序 目的版本说明1、Qt的安装2、MSVC套件与Windows 10 SDK的下载3、QGIS开发有关的库文件下载4、环境搭建5、QGIS开发环境搭建6、展示网页地图 目的 由于有在背景地图上进行动态轨迹&#xff08;曲线&#xff09;显示的需要&#xff0c;故采用QtQGIS的…

2023/8/5总结

主要实现了&#xff1a; 举报&#xff1a; 内容管理搜索的实现 管理员界面 还有消息没写&#xff0c;以及一些小细节

基于C#的应用程序单例唯一运行的完美解决方案 - 开源研究系列文章

今次介绍一个应用程序单例唯一运行方案的代码。 我们知道&#xff0c;有些应用程序在操作系统中需要单例唯一运行&#xff0c;因为程序多开的话会对程序运行效果有影响&#xff0c;最基本的例子就是打印机&#xff0c;只能运行一个实例。这里将笔者单例运行的代码共享出来&…

秋招算法备战第36天 | 435. 无重叠区间、763.划分字母区间、56. 合并区间

435. 无重叠区间 - 力扣&#xff08;LeetCode&#xff09; 这个问题可以通过贪心算法来解决。首先&#xff0c;我们将区间按照结束时间进行升序排序&#xff0c;然后我们可以从左到右遍历区间&#xff0c;选择结束时间最早的区间&#xff0c;并从集合中移除所有与该区间重叠的…

eslint的一点知识

eslint:globals 如果我们想控制一个变量只能进行读取或者写入可以在这里配置 "globals":{"a":false,// 只读"b":true, // 可读可写"$":true // 不存在$ 直接使用也不会报错 },error Read-only global ‘a’ should not be modified …

Linux中安装Node

安装 先从 官方网站 下载安装包&#xff0c;有时 node 版本太新会导致失败&#xff0c;详见下方的常见问题第2点 cd /home // 创建目录&#xff0c;将下载好的 node 安装包上传到此目录 mkdir Download mkdir /usr/local/lib/node解压 // 解压&#xff0c;前面是文件当前路径…

【Java】批量生成条码

批量生成PDF条码 效果图&#xff1a; //调用下方接口注意编码格式if(CollectionUtil.isNotEmpty(productExList)){String exportFileName URLEncoder.encode("商品条码", "UTF-8") DateUtil.format(new Date(), "yyyyMMddHHmmss");response.…

(三)Node.js - 模块化

1. Node.js中的模块化 Node.js中根据模块来源不同&#xff0c;将模块分为了3大类&#xff0c;分别是&#xff1a; 内置模块&#xff1a;内置模块由Node.js官方提供的&#xff0c;例如fs、path、http等自定义模块&#xff1a;用户创建的每个.js文件&#xff0c;都是自定义模块…