클래스의
public 어디서든 접근 허용
protected 상속 관계에 놓여 있을 때, 유도 클래스에서의 접근 허용
private 클래스 내에서만 접근 허용.
======================================================================
"전처리기"
#ifdef PRO_VER
#define MAX_SPEED 100
#else
#define MAX_SPEED 10
#endif
이렇게 해두고 제어코드는 다음과 같이 하면 되겠지요?
if( speed > MAX_SPEED )
speed = MAX_SPEED; // 최고속도를 초과하면 강제적으로 최고속도로 되돌림.
자.. 이렇게 작성을 마친후에...
유료버전을 만들기 위해 컴파일러 옵션에서 PRO_VER를 참으로 지정을 해서 컴파일을 합니다.
#ifdef PRO_VER
#define MAX_SPEED 100 <- 여기에 해당되어 컴파일
#else
#define MAX_SPEED 10
#endif
그럼 이 실행파일은 최고속도로 100을 갖게 됩니다.
무료버전을 만들기 위해 PRO_VER를 거짓으로 해서 컴파일을 합니다.
#ifdef PRO_VER
#define MAX_SPEED 100
#else
#define MAX_SPEED 10 <- 여기에 해당되어 컴파일
#endif
자~ 불필요하게 소스코드를 수정하지 않고, 컴파일러 옵션 설정만으로도 유료, 무료버전을 별도로 만들었습니다. 편리하죠?
이밖에 어떤 프로그램을 윈도우 버전, 리눅스 버전을 따로 만들어 배포하고 있습니다.
근데 C코드이기 때문에 대부분이 중복되고, 극히 일부분만 다르기 때문에 코드를 따로 관리하기가 힘듭니다.
그럼 어떻게 하면 되죠?
#ifdef WINDOWS
// 윈도우일때 필요한 코드
#else
// 리눅스일때 필요한 코드
#endif
동일한 코드는 그냥 놔두고, 극히 일부분만 다른 코드만 이런식으로 처리를 해줍니다.
그럼 컴파일할때 역시 코드 수정없이 윈도우버젼, 리눅스버젼 프로그램을 따로 만들 수 있는 겁니다.
뭐.. 이밖에도 통신환경을 설정한다거나 윈도우 버전별로 다른 처리를 하는 등등..
온갖 처리에 전처리기를 사용하게 됩니다.
이해가 되셨는지요?
http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=147544009&qb=I2lmbmRlZg==&enc=utf8§ion=kin&rank=2&search_sort=0&spq=0&pid=SbBbowpySp4sssS1aVZsssssstw-477751&sid=VGjGowpyVpIAAAV1FHA
이분이 설명을 잘하신듯