public 상속의 막강한 힘은 해본 사람만이 안다. DX 리소스 매니저를 만들 었을 때, 리소스 매니저의 리소스를 상속한 버텍스와 텍스쳐 등을 다형성으로 제어 하고, 사용 할 때, public 상속은 정말 깔끔함을 선사해 준다.

이번 항목을 이런 다형성을 제어하는데 초점을 맞춘다.

예제 코드를 보자.

자! 이제 부터가 시작이다!

f2() 가 허용 되지 않게 방법을 제시하라!


해설

만약 런타임에 할 수 있다면, dynamic_cast 로 분기 시키면 될 듯 한데. 런타임에 하는 방법은 마지막 방법이니 보류한다. : )

해답을 보니, 의외로 간단하다.

이렇게 해결 한다. friend 사용을 이렇게 사용 한다면,꽤 괜찮은 선택이라 본다. private 상속 하고 friend 로 확장시켜서 원하는것만 제어 한다라.. 음~


총평

원리를 놓고 보자면, private 상속하여, A 는 B이다 기법을 막아두고 "A는 B 이다" 싶은 녀석들만 friend 로 넣어 줌을서 친구인 녀석들만 "A는 B 이다" 라고 정해 두는 기법이다.

posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요