首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++外部的垃圾收集

C++外部的垃圾收集
EN

Stack Overflow用户
提问于 2019-01-14 15:55:04
回答 1查看 178关注 0票数 0

我做了一个游戏的连接-4在C++的一些人工智能问题,并连接到一个nodejs网络服务器作为一个插件。

我是这样工作的:

代码语言:javascript
复制
  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)是垃圾收集的,还是应该自己管理内存?

如果我要管理内存,最好的做法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-14 16:15:08

c++的口号下,只为您使用的东西付费,没有垃圾收集。这意味着您需要自己管理内存。在这种特殊情况下,您有两个选项:

  1. 不要和new玩游戏。根据应用程序的不同,仅仅使用Game game;可能就足够了。
  2. 如果您确实需要new Game,可以使用RAII (资源获取是初始化)成语类型包装新的。您可以利用c++智能指针: auto game_ptr = std::make_unique<Game>();unique_ptr的作用域结束时,它包含的内存将自动释放。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54184864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档