1. Track :: RunTime Type Information (런타임 타입 정보) 12장 |RTTI 각 개체들의 생성과 관리 13장 | 객체 관리 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
2. Track :: RunTime Type Information (런타임 타입 정보) 12장 |RTTI 각 개체들의 생성과 관리 13장 | 객체 관리 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
3. Track :: RunTime Type Information (런타임 타입 정보) 12장 |RTTI 표준RTTI 커스텀RTTI 사용시 고려점 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
4. RTTI(RunTime Type Information)? -런타임시에도 특정 개체에 대한 정보를 알아낼 수 있는 기능 -성능 문제로 예전에는 대부분 컴파일러가 디폴트옵션 꺼짐이었다고 함. - 클래스당 약 30~50바이트 정도의 용량을 잡아먹음. type_info class GameObject { }; GameObject object; const type_info& info= typeid( object ); _vfptr void* _m_data char _m_d_name[1] http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
5. Standard RTTI :: 예제 I am Child Number= 5 I am Parent Number= -858993460 Dynamic_cast 일 경우 NULL 반환 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
7. RTTI 사용시 고려점 +필요한 곳에만 적절히 사용하자. (적재적소에) +개체들이 상호작용하는 상황이 빈번하게 나타나는 경우 사용. - 프레임당 호출 회수가 많아 질 경우 문제. -동적 타입의 가상 함수 외에 RTTI를 쓸 필요는 없다. - RTTI를 사용하는 것보다 나은 디자인을 고려하는 방법도 있다. http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
8. 사용할 수 밖에 없는 경우 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
9. Track :: RunTime Type Information (런타임 타입 정보) 12장 |RTTI 각 개체들의 생성과 관리 13장 | 객체 관리 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
10. Track :: RunTime Type Information (런타임 타입 정보) 12장 |RTTI 각 개체들의 생성과 관리 13장 | 객체 관리 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
11. 개체의 효율적인 관리 코드 비용==하드코딩 http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
12. 생성 과정에서의 관리(패턴) 구현 kFactory.Register(“Zealot”); Zealot Gate GateWay StarGate Templar Scout Carrier IFactory Register GameUnit IAction kFactory.Register(new Zealot); kFactory.Register(“Ground”,new Zealot); Zelaot() {kFactory.Register(“Zealot”, this); } -팩토리 : 직접 new를 호출X, 생성 대리. -인터페이스와 구현 클래스의 구분. -필요한 헤더와 개체 타입을 팩토리만알아도 구현에 문제 없음. -각 소스에 대한 의존성이 줄어듦. http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr
13. 게임 프로그래머를 위한 C++를 읽고나서… - 짧은 시간이지만 주마다 발표가 있어 더욱 알찬 공부가 되었던 것 같습니다. - 게임 프로그래밍을 주제로한 C++책을 처음보게 되었는데 실무적인 내용도 게임쪽에 맞추어 중요 핵심만 간추려 볼 수 있어서 좋았습니다. http://raimsoft.com DreamexecutionWarrock Client team Choi Jun Hyeok http://dreamexe.co.kr