프로그래밍/잡탕
[C++] Switch 문에서 case에 둘 변수에서 조심해야할 점
터프 프로그래머
2012. 10. 27. 23:23
int ATTACK_FAIL = 0;
int ATTACK_SUCCESS = 1;
int ATTACK_DIE = 2;
switch( target_->Hit(code) )
{
case ATTACK_FAIL:
break;
// Corrected Code
case ATTACK_SUCCESS:
shotBullet(target_);
break;
// Enemy die!
case ATTACK_DIE:
this->removeChild(target_, true);
enemyList->removeObject(target_, false);
target_ = NULL;
break;
}
혹시 가끔 위와 같은 코드를 작성하지 않으십니까.
오늘 코딩을 하다가 case 부분에서 에러가 났는데 그 이유를 찾는데 시간이 좀 걸렸네요.
저 소스에서의 문제점은 ATTACK_XXX이 '변수'라는 점입니다.
때문에 에러를 없애기 위해서는 int 앞에 const를 적어서 '변하지 않는 변수'가 되도록 해주거나 enum으로 선언해줘야 합니다.