C++外部代码的垃圾回收
Garbage Collection of C++ externals
我在C++中为一些AI问题制作了一个connect-4游戏,并将其作为插件连接到nodejs web服务器。
我是这样工作的:
v8::Isolate *isolate = v8::Isolate::GetCurrent();
Game *game_ptr = new Game();
game_ptr->nextPlayer();
Local<ObjectTemplate> game_template = ObjectTemplate::New(isolate);
game_template->SetInternalFieldCount(1);
Local<Object> game = game_template->NewInstance();
game->SetInternalField(0, External::New(isolate, game_ptr));
我的问题是:游戏(用作v8::External
)是垃圾收集的,还是我应该自己管理内存?
如果我应该管理内存,最好的做法是什么?
在c++
的口号下,只为你使用的东西付费,没有垃圾收集。这意味着你需要自己管理内存。在这种特定情况下,您有两个选项:
- 不要用
new
做游戏。根据您的应用程序,仅使用Game game;
可能就足够了 -
如果您确实需要
new
Game
,请将新的封装在RAII(资源获取是初始化)习惯用法类型中。您可以利用c++
智能指针:auto game_ptr = std::make_unique<Game>();
当
unique_ptr
的作用域结束时,它所包含的内存将自动释放。
相关文章:
- 我收到错误LNK2001:未解析的外部符号(C++代码)
- Python 3.8:运行外部C++代码:无法导入模块
- 如何将外部代码包含在虚幻引擎4 C++项目中
- 如何在不进入 Visual Studio 2015 中的外部库的情况下单步执行我的代码 (F11)
- 引入参数化构造函数后显示 LNK 2019 未解析外部符号的代码错误
- 如何跟踪通过外部代码修改类变量的所有位置
- 使用 select() 和大量文件描述符的外部代码
- STD ::承诺外部代码,异步取消
- C++外部代码的垃圾回收
- 在 gcc 中使用数组参数编译外部"c"代码
- Simulink Coder语言 - 如何将外部代码与模型接口
- 如何从外部代码和Makefile启动CodeBlocks项目
- C++如何判断static.lib是否有效,是否可从外部代码调用
- C++SFML qt创建者未解析的外部代码
- 如何组织目录结构并为外部代码编写生成文件
- 如何在 CMake 中为本机代码和外部代码设置不同的编译器警告级别
- 调用外部代码
- 在Github存储库中处理外部C/C++代码库
- 在c++中转义外部代码块
- UDF调用SQL Server内部的外部C++代码