싱글톤

먼저 매크로를 정의해준다 (#define을 통헤 GET_SINGLE, DEFINITION_SINGLE, DESTROY_SINGLE)

1. 01. Core를 먼저 만든다.

2. main에서는 CCore를 Init한 후에 CCore의 run을 불러옴. 그 후 Run에서 return 후에는 Destroy.

   (Run에서는 while문을 통해 출력)

3. value.h에는 Input(입력 제네릭 함수)

4. 01. Core에는 크게는 Init과 Run 함수가 있다.

5. 02. Stage 클래스. (싱글톤으로 구성).

6. Stage클래스에도 Init과 Run.

7. Stage클래스는 Core에서 쓰이기 때문에 Core내부에서 #include "CStage.h"

8. CCore Init에서 Stage를 Init해줌.

9. Stage의 부모를 만든다.(CStage) (스테이지 클래스를 여러개만들면 타입이 다르기 떄문에 관리 힘듬. 따라서 부모를 생성하여 업캐스팅을 통하여 관리)

10. CStage의 자식들(CStageEasy, CStageNormal, CStageHard)을 만든다.

11. STL vector와 list를 사용하자.

12. StageManager에서 vector<class CStage*> m_vecStage;로 부모 클래스 벡터를 전방선언. StageNormal.h StageEasy.h StageHard.h 헤더 포함시켜준다.

13. StageManager에 CreateStage(stageType eType)

14. 생성된 Stage는 vector에 push_back으로 들어간다. (SAFE_Delete_VecList함수 만든다. iterator사용해서)

15. StageManager Init에서 CreateStage(ST_EASY), CreateStage(ST_NORMAL, CreateStage(ST_HARD) 함수 호출.

16. CStage와 CStageEasy,Normal,Hard는 부모자식 관계이므로 Init은 가상 함수로 작성. CStage는 가상 클래스. 자체적으로 생성 불가능

17. 윗줄 덕분에 StageEasy와 Normal, Hard의 Init()과 Run()함수를 호출할 때 각각 다른 코드를 부를 수 있다. (하나의 부모를 통해 관리를 하기떄문에 용이함. 그래서 업캐스팅 사용!)

18. CObjectManager(SingleTon) > CObj > CPlayer = CMonster 단계로 설계.


STL

벡터 

리스트 

스택 

큐 

맵->이진트리(탐색에 특화) why? 특정 기준에 따라 나눔. 

레드블랙 이진트리로 되어있음. 

+ Recent posts