【1】场景分析
在一个函数内部,可能会多次用到某一段代码,一般情况是把这段用到次数较多的代码封装成一个函数。
但是,如果这段代码仅仅只在这个函数中有使用,这时封装成函数显得既麻烦又冗赘。
那么,有没有办法生成一个“临时的函数”,且“临时的函数”生命周期仅在这个函数当中?C++11中可以使用function配合lambda表达式来实现。
【2】代码示例
简单示例如下:
1 #include <iostream>
2 #include <functional>
3
4 class A
5 {
6 public:
7 void funcOld(int x, int y)
8 {
9 // -----code section
10 auto s1 = x + y;
11 // -----code section
12 auto s2 = x + y;
13 // -----code section
14 auto s3 = x + y;
15
16 std::cout << "sum :: " << s1 + s2 + s3 << std::endl;
17 }
18
19 void func(int x, int y)
20 {
21 auto func1 = [this](int x, int y)
22 {
23 return x + y;
24 };
25
26 auto s1 = func1(x, y);
27
28 auto s2 = func1(x, y);
29
30 auto s3 = func1(x, y);
31
32 std::cout << "sum :: " << s1 + s2 + s3 << std::endl;
33 }
34 };
35
36 void main(int argc, char *argv[])
37 {
38 for (auto c : { "hello world !!!" }) // c++17 for
39 {
40 std::cout << c;
41 }
42
43 std::cout << std::endl;
44 A a;
45 a.func(2, 3);
46
47 system("pause");
48 }
49
50 // run out:
51 /*
52 hello world !!!
53 sum :: 15
54 请按任意键继续. . .
55 */
Good Good Study, Day Day Up.
顺序 选择 循环 总结
原文链接: https://www.cnblogs.com/Braveliu/p/9155702.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/275517
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!