フレームを閉じると、自分のプログラムがクラッシュし続けます。私は原因を2行の問題コードに絞り込んだが、なぜ彼らがクラッシュしているのか分からない。
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);
}
奇妙な問題2は、プログラムをクラッシュされませんでした。私のコードに何が問題なのですか?
あなたの問題はメモリアクセスに関連しているようです - それに 'valgrind'を実行しようとしましたか? –
valgrindとは? – Eva
http://valgrind.org/ –