RTTI

2011-03-06 3 views
0

다음 세 가지 클래스는 다음 다른 C++ 클래스 정보를 검색하는 방법RTTI

class ClassA{}; 
class ClassB:public ClassA{}; 
class ClassC:public ClassB{}; 

ClassC cobject; 

나는 cobject의 "클래스 이름"(즉, ClassC)를 알고 싶어하고 '슈퍼 클래스'이름 '(즉, ClassB가 &를 ClassA)

RTTI가 이것을 할 수 있음을 알고 있습니다. 하지만 몇 가지 매크로로이 작업을 수행 할 수 있는지 궁금합니다.

+0

'typeid'를 사용하거나 원하는 정보를 클래스에 넣어야한다고 생각합니다. –

답변

1

RTTI를 사용하지 않으려면 짧은 매크로를 사용하면됩니다.

그러나 직접 템플릿을 사용하거나 Boost.TypeTraits과 같은 라이브러리를 사용하여 클래스 유형에 대한 유용한 정보를 많이 얻을 수 있습니다. 예를 들어, 어떤 클래스가 다른 클래스로부터 상속 받았는지 테스트 할 수 있습니다. is_base_of()