Моя программа продолжает падать, когда я закрываю фрейм.Я сузил причину до двух строк проблемного кода, но я не уверен, почему они дают сбой.Вот мой код:
TetrisFrame.cpp
TetrisFrame::TetrisFrame()
: wxFrame(0, wxID_ANY, "Tetris")
{
statusController_ = new StatusController;
statusController_->setModel(new Statuses);
statusController_->addView(this);
tetrisController_ = new TetrisController;
tetrisController_->setStatusController(statusController_.get()); // Problem one
tetrisController_->setModel(new TetrisModel);
tetrisController_->addView(new Board(this)); // Problem two
}
Переменные частного члена класса TetrisFrame:
wxSharedPtr<StatusController> statusController_;
wxSharedPtr<TetrisController> tetrisController_;
Закрытый раздел класса StatusController:
typedef wxSharedPtr<TetrisFrame> ViewPtr;
wxSharedPtr<Statuses> model_;
std::vector<ViewPtr> views_;
Частные переменные класса класса Board:
wxSharedPtr<TetrisController> controller_;
соответствующие функции TetrisController:
void TetrisController::setStatusController(
StatusController* statusControllerPtr)
{
statusController_ = statusControllerPtr;
}
void TetrisController::addView(Board* viewPtr)
{
views_.push_back(ViewPtr(viewPtr));
viewPtr->setControlller(this);
}
Как ни странно, проблема два - не сбой программы, пока я не исправил еще одну проблему, которая вызывала сбой программы.Что не так с моим кодом?