항상 클래스를 생성할 때, 이름때문에 고민을 너무 많이 합니다. 예를 들어서
손가락을 표시하는 클래스를 제작할 때요.
첫째 손가락
둘째 손가락
셋째 손가락
넷째 손가락
엄지 손가락
을 표시해야 합니다.
< 선택 1 >
FOR 문을 돌리기 쉽게 숫자로 배열한다.
class LeftHand : public Property
{
public:
typedef enum
{
LEFT_00,
LEFT_01,
LEFT_02,
LEFT_03,
LEFT_04,
LEFT_ALL,
} StateType;
};
< 선택 2 >
그냥 일상 영어로 이름을 짓는다.
class LeftHand : public Property
{
public:
typedef enum
{
LEFT_LITTLE,
LEFT_RING,
LEFT_MIDDLE,
LEFT_FORE,
LEFT_THUMB,
LEFT_ALL,
} StateType;
};
어떤 것을 해야 할까. 고민 중입니다.
일단은 선택 2로 해야 할 것 같은데, 어떤 것이 더 좋을까요?
별 것 아닌 것 같은데 무진장 고민됩니다. 어떤 경우에는 기계처럼 0부터 10까지 이름을 붙이고, 어떤 경우에는 일상어로 이름을 붙여야 하는지 노하우가 없네요.
상황에 따라 다르겠죠.
예를 드신 손가락으로 보자면 피아노를 치는 프로그래밍을 한다면 숫자로 쓰는게 더 편할테고
옷입히기 같은 프로그래밍을 한다면 영문명으로 쓰는게 편할테고요.
저라면 2번..
숫자로 for 루프 돌리는거야 for (int i = LEFT_LITTLE; i <= LEFT_THUMB; i++) 하면 끝나잖습니까?
if (finger == LEFT_THUMB) { ... } 라는 문장과
if (finger == LEFT_05) { ... } 라는 문장은 소스 가독성 면에서 많은 차이를 보입니다.
감사합니다. 덕분에 일이 잘 풀렸어요. 바드님 말대로 하니깐 For문이 돌아가네요.
for문을 int로만 돌린다는 편견때문에, enum값으로 돌리는 것을 생각하지도 못했습니다.
결국 같은 거네요.
33시간째 잠을 못 잤지만, 무사히 끝났네요. 이틀 사이에 삶과 죽음이 교차하네요.
... 망할 갤럭시 탭, 시도 때도 없이 꺼지는 바람에 말입니다.
아이패드는 잘 돌아가는데, 갤럭시 탭은 이유를 알 수 없고, 때를 특정할 수 없는 오류들이 너무 많아서 개발에 집중할 수 없네요.
갤럭시 탭 10.1은 나의 원수가 되었습니다.
LEFT_FINGER_1 ~ 5 그리고 주석으로 2번 내용 ;;