The TYPE_DATA macro expands into a set of declarations of static and virtual methods and members which have to be added to an application C++ class that wishes to use RTTI. More precisely, the following members are added:
protected:
static const Type_info RTTI_obj;
static void* RTTI_new(const Type_info*);
public:
static typeid RTTI_sinfo();
virtual void* RTTI_cast(typeid);
virtual typeid RTTI_vinfo() const;
The
member
is the static Type_info which represents this class.
has been described in the previous section. It creates a new object of
this type and returns it as a pointer cast to the Type_info parameter.
Both
and
return the
member of this (the static method is used for the STATIC_TYPE_INFO operation
while the other one by the TYPE_INFO operation). The last method,
,
returns a pointer to an object of this class cast to the typeid parameter
and is used by the PTR_CAST operation.