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