C/C++ C++ 11 兰姆达

 

{

    auto layer = Layer::create();
    auto event = cocos2d::EventListenerTouchOneByOne::create();
    event->onTouchBegan = [=](Touch*, Event*)->bool
    {
        this->createMSG("res/box/box_0.png", "res/btn/close_1.png", UTF_8("冬虫夏草app"));
#ifndef _WIN32
        Device::vibrate(5.0f);
#endif
        return true;
    };
    event->onTouchMoved = [=](Touch*, Event*)
    {

    };
    event->onTouchEnded = [=](Touch*, Event*)
    {

    };
    event->onTouchCancelled = [=](Touch*, Event*)
    {

    };
    


    auto listener = cocos2d::EventListenerKeyboard::create();
    listener->onKeyReleased = [=](EventKeyboard::KeyCode code,Event *e)
    {
        this->createMSG("res/box/box_0.png", "res/btn/close_1.png", UTF_8("冬虫夏草app ") + framework::tostring((int)code));
    };

    auto ed = layer->getEventDispatcher();
    ed->addEventListenerWithSceneGraphPriority(event, layer);
    ed->addEventListenerWithSceneGraphPriority(listener, layer);
    this->addChild(layer);

}

 

最好采用=传递

& 引用传递要好好考虑,有可能会破环某些栈内存

要这样[&a,&b] 这样最好,

{

如果是[&] 改变父级的内存 并不能保证会不会出错

尤其是堆内存这些

}

{

1.[var]表示值传递方式捕捉变量var;
2.[=]表示值传递方式捕捉所有父作用域的变量(包括this);
3.[&var]表示引用传递捕捉变量var;
4.[&]表示引用传递方式捕捉所有父作用域的变量(包括this);
5.[this]表示值传递方式捕捉当前的this指针。

}

posted @   YZFHKMS-X  阅读(226)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示