{
타입을 변환해야지만 가능하다면, 애초에 다형성을 활용해서 짜는게 더 좋지 않겠냐는 이야기이다. 이런 이야기는 무척 많이 들어온 터러 간략하게 말해도 정리가 된다.

그리고 타입의 변환보다 다형성이 코드를 보다 독립적으로 구성 시킬 수 있기 때문에, 타입변환 대신 다형성을 사용하는게 더 편하다.

대표적인 예로, 도형 클래스가 있고, 각 도형 클래스는 자신을 그린다고 하자. 그리고 각 도형을 인자로 받아, 아이디 별로 분기 시켜서 그린다고 했을 때 다음과 같은 코드가 나온다.

실수하면 죽을 수도 있는 코드가 바로 이런 코드이다. 이런 코드를 좀 더 C++ 스럽게 사용하기 위해선, 이번 항목데로 다형성을 활용하면 손 쉬워 진다.

아래 코드는 다형성을 사용하여 만든 코드이다.
 

각기 독립적이며, 실수할 건던지도 없는 깔끔한 코드가 되었다. 물론 동적 다형성을 사용해도 되나, 간단한 것은 정적 다형성으로도 충분히 가능하므로 이렇게 한번 해 보았다.

전자의 경우, 타입이 변환되거나 더 추가 될 때마다 Swich_Draw 를 유지보수 해 주어야 하므로, 무척 까다롭지만, 후자의 경우, 추가만 하고 템플릿의 커스텀 포인트인 draw() 를 정해 주기만 하면 된다. ^^

그럼 즐거운 코딩~
}

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

댓글을 달아 주세요