본문 바로가기

Windows Developer/MFC

[MFC]가상함수를 이용한 스타크래프트 만들기



[시나리오]
Unit Class에 가상 함수를 만들고
SCV Class와 Marin Class, Zealot Class는 Unit 클래스를 상속 받는다.


Unit Class 해더


후기에 유닛을 판별할 수 있는 가상함수를 만든다고 했지만 지금 생각해 보면 필요가 없는 함수인 것 같다.
검색을 할 수 있는 방법은 *pUnit[10]에서 생성할때 배열의 인덱스로 각각의 유닛 종족이 무엇인 지 알 수 있기 때문에 사실상 종족을 따로 판별하지 않아도 되는 것이다. 
실제 코드는 그렇게 작성되어 있다.


SCV Class 해더


Zealot class, Marin class도 위와 동일한 함수를 사용한다.
virtual 함수를 사용함으로 인해서 CString AttackPlay(), void AttackUp() 함수를
각각 생성된 유닛에 따라 기능을 재 구현하게 되면 기능에 맞게 유닛에 대한 행동을 할 수 있게 된다.




<감점 되었던 내용>

10개의 유닛을 생성하고 폼을 그냥 종료 했을 경우 메모리 릭이 발생한다
(그림 확인 Detected memory leaks! 이라고 확인을 할 수 있다)
이를 해결하기 위해서 WM_CLOSE 메세지를 추가해서 폼이 종료 되었을 경우에도 메모리 해제를 해줘야 한다

'Windows Developer > MFC' 카테고리의 다른 글

[MFC] CString에서 한글 깨짐현상, UTF-8 to ANSI  (0) 2011.01.28
[MFC] Dll 배포 및 사용  (2) 2010.12.22