次のような「this」ポインターを他のオブジェクトに渡すオブジェクトがある奇妙なシナリオがあります。
void GameLayer::startGame()
{
m_pGameController = new GameController(this);
}
GameController コンストラクターで、GameLayer でメンバーを設定します
GameController::GameController(GameLayer* gamelayer)
{
m_gamelayer = gamelayer;
}
GameController には、次のようなコールバック関数を使用する関数があります。
GameController::methodA()
{
CurrentGem->runAction(GameController::mycallbackMethod);
}
コールバック関数では、次のように「this」を使用して GameController 関数とメンバーにアクセスします。
GameController::mycallbackMethod()
{
int test = this->age();
std::string name = this->name();
}
しかし、問題は、m_pGameController にアクセスしようとすると、NULL ポインターを示す例外が発生することです。
GameController::mycallbackMethod()
{
this->m_gamelayer->someGamelayerMethod();
}
エラーは次のとおりです。
Access violation reading location 0xFFFFFFFF.
私は何を間違っていますか?