C++闭包示例

xiaoxiao2021-02-28  88

#include <iostream> using namespace std; auto mpaip(int a, int b) { // 函数的返回值是一个函数 return [a, b](auto c) {return c(a, b); }; } int first(int a, int b) { return a; } int second(int a, int b) { return b; } int main() { auto pp = mpaip(1, 2); //返回一个变量pp,是一个函数 auto pa = pp(first); // auto pa=mpair(1,2)(first); auto pb = pp(second); cout << pa << ":" << pb << endl; //1:2 auto pp2 = mpaip(3, 4); //返回一个变量pp,是一个函数 auto pa2 = pp2(first); // auto pa=mpair(3,4)(first); auto pb2 = pp2(second); cout << pa2 << ":" << pb2 << endl; //3:4 getchar(); return 0; }

#include <iostream> using namespace std; int main() { auto f = [](int in) { int t = 3; return [=](int x) {return in + t + x; }; }; auto fx = f(3); auto f1 = fx(4); auto f2 = fx(5); cout << f1 << ":" << f2 << endl; //10:11 (3+3+4:3+3+5) getchar(); return 0; }

转载请注明原文地址: https://www.6miu.com/read-59565.html

最新回复(0)