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指针。
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律