|
// 헤더파일.
class TStar
{
public:
enum opening_result{ rNothing, rWon,rLost}; //<====== <<1>>
opening_result Open(TPoint pos);
};
//CPP파일.
opening_result TStar::Open(TPoint pos) //<====== <<2>>
{
return rLost;
}
위와같이 코딩하니까 <<2>> 에서
Declaration syntax error
라고 하는 에러가 납니다. (C++ Builder 5 에서 컴파일)
그런데, 이때, <<1>> 을 TStar 의 정의구간 바깥으로 꺼내놓고 다시 컴파일하면 에러가 안납니다.
제가 <<1>>부분을 굳이 TStar의 정의구간 안으로 넣은 건,
opening_result라는 타입의 이름을 보호하기 위해서입니다.즉, TStar라는 클레스를 opening_result라는 타입네임을 보호해주는 namespace로 사용하려 한 겁니다. (저는 enum을 할 때 언제나 이러한 방식으로 선언합니다.)
이 상태에서 <<1>>를 TStar의 정의구간 안에 놓은 상태에서
위의 에러를 안 나게 하려면 어떻게 코드를 수정해야 할까요?
아니면 opening_result라는 타입네임을 보호하는 다른 좋은 방법은 없나요?
|