當我關閉框架時,我的程序不斷崩潰。我將原因縮小爲兩行有問題的代碼,但我不確定它們爲什麼會崩潰。下面是我的一些代碼:
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_;
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);
}
奇怪的問題,有兩種沒有崩潰的程序,直到我修正了崩潰的程序的另一個問題。我的代碼有什麼問題?
看來你的問題與內存訪問有關 - 你是否嘗試在其上運行'valgrind'? – 2012-01-27 02:40:46
什麼是valgrind? – Eva 2012-01-27 04:06:49
http://valgrind.org/ – 2012-01-27 20:13:23