Я пишу приложение для QT, и я очень хорошо разбираюсь в C ++, так что я думаю, в этом проблема. У меня сбой с сигналом exc_bad_access
на моем Mac, что означает, что я делаю что-то не так с памятью. Вот мой код:
void MainWindowController::showMainWindow() {
MainWindow *w = mainWindow();
w ->show();
}
MainWindow *MainWindowController::mainWindow() {
if (NULL != _mainWindow)
return _mainWindow;
// otherwise, we need to load it and return it
_mainWindow = new MainWindow(0);
return _mainWindow;
}
_mainWindow
- это переменная экземпляра, указатель (как вы могли догадаться из сигнатуры функции). Это простая ленивая загрузка. Я думаю Я делаю управление памятью ОК, так как этот класс владеет объектом (который позже удаляется в деструкторе).
Сбой происходит в строке w -> show();
, QT жалуется, что находится где-то внутри функции show () QWidget, что на самом деле не имеет смысла для меня.
Кто-нибудь может мне помочь? Спасибо!