以前作ったゲームをC++のクラスを使って書き換えています。
必要と思われる部分を抜粋します。
enum GAMESTATE{
GAME_START, GAME_TYUUSEN, GAME_MAIN
};
//main.cpp
GAMESTATE game_state;
game_state = GAME_START;
//=====メインループ====================================
while(ProcessLoop() == 0){
switch(game_state){
case GAME_START:
if(CheckHitKey(KEY_INPUT_RETURN) == 1)
game_state = GAME_TYUUSEN;
break;
case GAME_TYUUSEN:
gameStage.Set_startCounter(0);
gameStage.tyuusen();
game_state = GAME_MAIN;
break;
case GAME_MAIN:
gameStage.game_main(&game_state);
break;
}
......
//gameStage.h
class CGameStage{
....
CFish_naka fish_naka[10];
....
};
//gameStage.cpp
void CGameStage::game_main(GAMESTATE *game_state){
startCounter++;
Move(game_state);
....
}
void CGameStage::Move(GAMESTATE *game_state){
fish_naka->Move_fish_naka(*&game_state....);
....
}
//fish.cpp
void CFish_naka::Move_fish_naka(GAMESTATE *game_state,......){
....
*game_state = GAME_TYUUSEN;
}
試行錯誤した結果、エラーも出ずに思った結果になりました。
うまくいったのは偶然で、gameStage.cppの
void CGameStage::Move(GAMESTATE *game_state){
___fish_naka->Move_fish_naka(*&game_state....);
___....
}
の部分で、*&game_state としてしまったからです。
質問は、*& このような書き方は間違っていないでしょうか?
Dxライブラリ、VC2008EEを使っています。
どなたかよろしくお願いします。