Привет, я работаю над платформой cocos2dx с cpp. Я сталкиваюсь с memleak в функции, где я использую новое ключевое слово для инициализации класса. Здесь у меня есть базовый класс для всего всплывающего окна в моей игре. Я хотел бы сделать всплывающее окно из базового класса popup наследуя от него. И добавление нового всплывающего окна как ребенка сцены. Проблема в том, что когда я инициализирую новый класс всплывающих окон в стеке, я не могу вызвать другие функции, которые есть в новом классе всплывающих окон. Поэтому я инициализировал свой новый класс всплывающих окон в куче, используя новое ключевое слово. Я также удаляю экземпляр в функции под названием close popup. Я также видел, что при очистке Iam вызывает удаление на правильный указатель. Но моя предварительная комиссия говорит, что это мемлик. Может ли кто-нибудь предлагать идеи? Вот мой код
# Newpopup.cpp extends BasePopup
views::BasePopup* NewPopup::createPopup() {
popup = BasePopup::createPopup(Size(400, 500));
return popup;
}
void NewPopup::cleanPopup() {
popup->removeFromParent();
delete this;
}
Добавление нового всплывающего окна к сцене в другом классе сцены
# Adding to scene
void MainScene::getNewPopup() {
NewPopup* NewPopup = new NewPopup();
this->addChild(NewPopup);
}
Здесь я делаю правильное удаление?