C++11 Function 使用场景
2024-08-20 00:28:52
【1】场景分析
在一个函数内部,可能会多次用到某一段代码,一般情况是把这段用到次数较多的代码封装成一个函数。
但是,如果这段代码仅仅只在这个函数中有使用,这时封装成函数显得既麻烦又冗赘。
那么,有没有办法生成一个“临时的函数”,且“临时的函数”生命周期仅在这个函数当中?C++11中可以使用function配合lambda表达式来实现。
【2】代码示例
简单示例如下:
#include <iostream>
#include <functional> class A
{
public:
void funcOld(int x, int y)
{
// -----code section
auto s1 = x + y;
// -----code section
auto s2 = x + y;
// -----code section
auto s3 = x + y; std::cout << "sum :: " << s1 + s2 + s3 << std::endl;
} void func(int x, int y)
{
auto func1 = [this](int x, int y)
{
return x + y;
}; auto s1 = func1(x, y); auto s2 = func1(x, y); auto s3 = func1(x, y); std::cout << "sum :: " << s1 + s2 + s3 << std::endl;
}
}; void main(int argc, char *argv[])
{
for (auto c : { "hello world !!!" }) // c++17 for
{
std::cout << c;
} std::cout << std::endl;
A a;
a.func(, ); system("pause");
} // run out:
/*
hello world !!!
sum :: 15
请按任意键继续. . .
*/
Good Good Study, Day Day Up.
顺序 选择 循环 总结
最新文章
- MySQL JDBC/MyBatis Stream方式读取SELECT超大结果集
- VC++ GDI 总结 一一 CBitmap类
- 利用chrome调试JavaScript代码
- MySQL的慢查询分析
- [Android NDK/JNI-1A]-开发环境搭建
- OpenStack_Swift源代码分析——创建Ring及加入�设备源代码算法具体分析
- with ffmpeg to encode video for live streaming and for recording to files for on-demand playback
- Html+Css实现九大行星动画效果
- jQuery动态绑定
- Qt Quick编程(1)——QML的核心部分ECMAScript
- ngrok localhost和http 的转换
- kinect 深度图与彩色图对齐程序
- Spring基础系列-AOP源码分析
- 调用 LoadLibraryEx 失败,在 ISAPI 筛选器 ";C:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet_filter.dll"; 上
- bat中errorlevel与%errorlevel%的区别
- Ubuntu postgres 内网 安装 卸载
- 吴裕雄 python 机器学习-NBYS(1)
- OTU(operational taxonomic units),即操作分类单元
- [WEB面试题] web前端面试题HTML+CSS第一弹,个人整理部分面试题汇总
- 各版本的区别及含义(i386 、x86_64 、ppc )
热门文章
- 洛谷P4052 [JSOI2007]文本生成器 AC自动机+dp
- 【Python基础】random 的高级玩法
- Python文件操作---正斜杠与反斜杠
- 使用docker部署Asp.net core web应用程序
- int(1)和int(11)是否有区别?
- MySQL 5.5加主键锁读问题【转载】
- Python Socket通信例子
- [Java in NetBeans] Lesson 16. Exceptions.
- vue使用md5加密
- php __FILE__ symlink