首页 > 解决方案 > 预提交时cpp中的memleak

问题描述

嗨,我正在使用 cpp 开发 cocos2dx 框架。我在使用 new 关键字初始化类的函数上面临 memleak。在这里,我有一个用于游戏中所有弹出窗口的基类。我想从继承它的基本弹出类中制作一个弹出窗口。并将新弹出窗口添加为场景的子项。问题是当我在堆栈上初始化新的弹出类时,我无法调用新弹出类中的其他函数。所以我使用 new 关键字在堆中初始化了我的新弹出类。我还在一个名为 close popup 的函数上删除实例。我还看到,在清除 Iam 时,我在正确的指针上调用了 delete。但我的预先承诺说那是一个 memeleak。有人可以提出建议吗?这是我的代码

# Newpopup.cpp extends BasePopup

views::BasePopup* NewPopup::createPopup() {
  popup = BasePopup::createPopup(Size(400, 500));
  return popup;
}

void NewPopup::cleanPopup() {
  popup->removeFromParent();
  delete this;
}

将新弹出窗口添加到另一个 Scene 类中的场景

# Adding to scene
void MainScene::getNewPopup() {
  NewPopup* NewPopup = new NewPopup();
  this->addChild(NewPopup);
}

我在这里做正确的删除吗?

标签: c++cocos2d-iphonecocos2d-x

解决方案


推荐阅读