Моя программа продолжает сбой при закрытии рамки. Я сузил причину до двух строк проблемного кода, но я не уверен, почему они терпят крах. Вот некоторые из моего кода:
TetrisFrame.cpp классаwxWidgets сбой программ при закрытии фрейма
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_;
совета класса частных членов переменные:
wxSharedPtr<TetrisController> controller_;
соответствующие TetrisController функции:
void TetrisController::setStatusController(
StatusController* statusControllerPtr)
{
statusController_ = statusControllerPtr;
}
void TetrisController::addView(Board* viewPtr)
{
views_.push_back(ViewPtr(viewPtr));
viewPtr->setControlller(this);
}
Как ни странно проблема два не разбивая программу, пока не фиксируется еще одна проблема, которая была сбой программы. Что случилось с моим кодом?
кажется, что ваша проблема связана с доступом к памяти - вы пытались запустить 'valgrind' на нем? –
Что такое valgrind? – Eva
http://valgrind.org/ –