C++相談室 part47
■ このスレッドは過去ログ倉庫に格納されています
0495493
2006/03/02(木) 19:18:19class Hoge{ //Hoge.h--------------------------------
HogeState* state;
public:
Hoge(){ state = new HogeState; }
void changeState( HogeState* new_state ){ delete state; state = new_state; }
void foo(){ state->foo( this ); }
void foo2(){ state->foo2( this ); }
};
class Hoge; //HogeState.h---------------------------
class HogeState{
int ahe;
public:
void foo( Hoge* hoge );
void foo2( Hoge* hoge );
};
#include "HogeState.h" //HogeState.cpp---------------
#include "Hoge.h"
void HogeState::foo( Hoge* hoge ){
hoge->changeState( new HogeState );
ahe = 777;
}
void HogeState::foo2( Hoge* hoge ){
ahe = 888;
hoge->changeState( new HogeState );
}
#include "HogeState.h" //main.cpp--------------------
#include "Hoge.h"
int main(){
Hoge hoge;
hoge.foo(); hoge.foo2();
}
■ このスレッドは過去ログ倉庫に格納されています