Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

RTTI

1.061 Aufrufe

Veröffentlicht am

  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

RTTI

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

×