Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++闭包

作者:发光男神   发布日期:2025-06-16   浏览:27

#include <iostream>
#include <functional>

// 定义一个简单的闭包示例
std::function<int(int)> makeCounter() {
    int count = 0;
    // 返回一个lambda表达式,捕获外部变量count
    return [count]() mutable -> int {
        return count++;
    };
}

int main() {
    // 创建一个闭包实例
    auto counter = makeCounter();

    // 使用闭包
    std::cout << "Counter: " << counter() << std::endl; // 输出: Counter: 0
    std::cout << "Counter: " << counter() << std::endl; // 输出: Counter: 1
    std::cout << "Counter: " << counter() << std::endl; // 输出: Counter: 2

    return 0;
}

解释说明:

  1. makeCounter 函数:该函数返回一个 lambda 表达式,这个 lambda 表达式捕获了局部变量 countcount 的初始值为 0。
  2. mutable 关键字:在 lambda 表达式中使用 mutable 关键字是为了允许修改捕获的变量 count
  3. 闭包的作用:每次调用 counter() 时,都会返回并递增 count 的值,因此可以实现一个简单的计数器功能。

通过这种方式,闭包可以在 C++ 中实现类似 JavaScript 中的闭包效果,即捕获并保存外部变量的状态。

上一篇:c++单引号和双引号的区别

大家都在看

c++闭包

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++ 获取系统时间

c++进制转换函数

c++ tcp

c++ gcd函数

c++ cli

c++ 树

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站