c++ strategy 패턴 c++2012. 9. 27. 00:05
using namespace std;
class GameCharacter;
//체력치 계산에 대한 기본 알고리즘을 구현한 함수
int defaultHealthCalc(const GameCharacter& gc);
int myHealthCalc(const GameCharacter& gc);
typedef int (*HealthCalcFunc)(const GameCharacter& );
class GameCharacter{
public:
explicit GameCharacter(HealthCalcFunc hcf = defaultHealthCalc):healthFunc(hcf){}
int healthValue() const { return healthFunc(*this); }
void setHealthCalcFunc(HealthCalcFunc hcf){ this->healthFunc = hcf; }
private:
//함수 포인터 선언
HealthCalcFunc healthFunc;
};
int defaultHealthCalc(const GameCharacter& gc)
{
cout << "defaultHealthCalc" << endl;
return 0;
}
int myHealthCalc(const GameCharacter& gc)
{
cout << "myHealthCalc " << endl;
return 0;
}
int main()
{
GameCharacter gc;
gc.healthValue();
gc.setHealthCalcFunc(myHealthCalc);
gc.healthValue();
return 0;
}
'c++' 카테고리의 다른 글
c++ quiz4 (0) | 2012.09.27 |
---|---|
c++ quiz3 (0) | 2012.09.27 |
Quiz2 (0) | 2012.09.26 |
c++ struct와 class의 차이점...????? (0) | 2012.09.25 |
다형성과 tr1::shared_ptr을 이용한 벡터 사용 (0) | 2012.09.25 |