c++ - 预提交时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);
}
我在这里做正确的删除吗?
解决方案
推荐阅读
- vue.js - 无法在 vue 2 中使用顺风无头 ui .Object(...) 不是函数
- sql - SQL selecting the rows with the maximum value in a table ordered by a column from another
- css - 为什么 CSS 文件会以错误的 MIME 类型保存:text/troff?
- button - 为什么这两个 SWT 复合材料应该相等时宽度却不同?
- python-3.x - 如何在python3中的模型拟合期间生成日志或打印一些东西
- javascript - 在 JavaScript 中按键从嵌套对象数组中查找对象
- android - React Native:我可以在屏幕中包含不在 Tab.Navigator 中的底部导航栏吗
- amazon-web-services - 将单个域中的邮件转发到一个收件箱
- hibernate - Spring休眠实体图不填充对象
- azure - azure 管道中定义的参数的继承