■ RTTI (Run-Time Type Information)

 

- C++에서는 RTTI를 완벽하게 지원하지 않는다. 때문에 MS는 Compiler 차원에서 RTTI를 지원해 주기 위한 방법을 구현해낸 것이 CRuntimeClass와 여러가지 매크로 함수를 제공하고 있다.

 

■ CRuntimeClass

- 본질적으로 특정 클래스에 대한 정보를 담고 있는 구조체이다.

- 일반화된 객체 생성 : 클래스 이름을 사용하지 않고 객체를 생성하는 기능

기반 클래스를 가지고 있지 않다.

 

- 세 종류의 매크로를 제공한다.

DECLARE_DYNCREATE()

IMPLEMENT_DYNCREATE()

RUNTIME_CLASS()

 

 

■ IMPLEMENT_DYNCREATE(CSimpleCalc, CCmdTarget)

- 첫번째 변수는 동적으로 생성하고자 하는 객체 클래스 이름

- 두번째 변수는 그 클래스가 상속 받는 기반 클래스의 이름

ex) 메인 프레임의 경우, 기반 클래스가 CFrameWnd 이면 단일 도큐먼트(SDI), CMDIFrameWnd 이면 다중 도큐먼트(MDI) 형식이다.

 

 

■ RUNTIME_CLASS 매크로 

- class 정보를 구하는 매크로

- 주로 현재 사용하는 클래스가 유효한 클래스인지 판단

Posted by 모과이IT
,