【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.

顺序 选择 循环 总结

最新文章

  1. MySQL JDBC/MyBatis Stream方式读取SELECT超大结果集
  2. VC++ GDI 总结 一一 CBitmap类
  3. 利用chrome调试JavaScript代码
  4. MySQL的慢查询分析
  5. [Android NDK/JNI-1A]-开发环境搭建
  6. OpenStack_Swift源代码分析——创建Ring及加入�设备源代码算法具体分析
  7. with ffmpeg to encode video for live streaming and for recording to files for on-demand playback
  8. Html+Css实现九大行星动画效果
  9. jQuery动态绑定
  10. Qt Quick编程(1)——QML的核心部分ECMAScript
  11. ngrok localhost和http 的转换
  12. kinect 深度图与彩色图对齐程序
  13. Spring基础系列-AOP源码分析
  14. 调用 LoadLibraryEx 失败,在 ISAPI 筛选器 &quot;C:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet_filter.dll&quot; 上
  15. bat中errorlevel与%errorlevel%的区别
  16. Ubuntu postgres 内网 安装 卸载
  17. 吴裕雄 python 机器学习-NBYS(1)
  18. OTU(operational taxonomic units),即操作分类单元
  19. [WEB面试题] web前端面试题HTML+CSS第一弹,个人整理部分面试题汇总
  20. 各版本的区别及含义(i386 、x86_64 、ppc )

热门文章

  1. 洛谷P4052 [JSOI2007]文本生成器 AC自动机+dp
  2. 【Python基础】random 的高级玩法
  3. Python文件操作---正斜杠与反斜杠
  4. 使用docker部署Asp.net core web应用程序
  5. int(1)和int(11)是否有区别?
  6. MySQL 5.5加主键锁读问题【转载】
  7. Python Socket通信例子
  8. [Java in NetBeans] Lesson 16. Exceptions.
  9. vue使用md5加密
  10. php __FILE__ symlink