CRuntimeClass

CRuntimeClass n'a pas une classe de base.

Chaque classe dérivée de CObject est associée à une structure CRuntimeClass que vous pouvez utiliser pour obtenir des informations sur un objet ou sa classe de base au moment de l'exécution. La capacité de déterminer la classe d'un objet au moment de l'exécution est utile lors de la vérification des arguments d'une fonction de type supplémentaire est nécessaire, ou lorsque vous devez écrire le code spéciaux basé sur la classe d'un objet. Information classe de Run-time n'est pas pris en charge directement par le langage C++.

La structure possède les membres suivants:

LPCSTR m_lpszClassName

Une chaîne contenant le nom de la classe ASCII.

int m_nObjectSize

La taille de l'objet, en octets. Si l'objet possède des membres de données de ce point de mémoire allouée, la taille de cette mémoire n'est pas incluse.

UINT m_wSchema

Le numéro de schéma (– 1 pour les classes non sérialisables). Voir la macro IMPLEMENT_SERIAL pour obtenir une description de la numéro de schéma.

CObject * (PASCAL * m_pfnCreateObject))

Un pointeur de fonction pour le constructeur par défaut qui crée un objet de votre classe (valide uniquement si la classe prend en charge la création dynamique ; sinon, retourne NULL).

CRuntimeClass * (PASCAL * m_pfn_GetBaseClass))

Si votre application est dynamiquement liée à la version AFXDLL de MFC, un pointeur vers une fonction qui retourne la structure CRuntimeClass de la classe de base.

CRuntimeClass * m_pBaseClass

Si votre application est liée de manière statique aux MFC, un pointeur vers la structure CRuntimeClass de la classe de base.

Fo&nctionnalité uniquement Professional et Enterprise Editionsnbsp ;  Liaison statique aux MFC est pris en charge uniquement dans Visual C++ Professional et Enterprise Editions. Pour plus d'informations, voir Éditions de Visual C++.

CObject * CreateObject);

Les classes dérivées de CObject peuvent prendre en charge la création dynamique, qui est la capacité de créer un objet d'une classe spécifiée au moment de l'exécution. Document, de visualiser et de classes de frame, par exemple, devraient soutenir la création dynamique. La fonction de membre de CreateObject peut servir à mettre en œuvre cette fonction et de créer des objets de ces classes au moment de l'exécution. Pour plus d'informations sur la création dynamique et le membre de CreateObject , voir Sujets de classe de CObject et classe de CObject : spécification des niveaux de fonctionnalités dans le Guide du programmeur Visual C++.

BOOL IsDerivedFrom (const CRuntimeClass * pBaseClass) const;

Retourne TRUE si la classe d'appeler IsDerivedFrom , le membre de classe est dérivée de la classe de base dont la structure CRuntimeClass est donnée en tant que paramètre. IsDerivedFrom promenades de classe du membre de la chaîne de classes dérivées jusqu'au sommet et retourne FALSE uniquement si aucune correspondance n'est trouvée pour la classe de base.

&Notenbsp ;  Pour utiliser la structure CRuntimeClass , vous devez inclure la macro IMPLEMENT_SERIAL , IMPLEMENT_DYNCREATEou IMPLEMENT_DYNAMICdans la mise en œuvre de la classe pour laquelle vous souhaitez récupérer des informations sur l'objet de l'exécution.

Pour plus d'informations sur l'utilisation de CRuntimeClass, consultez l'article classe de CObject : accéder à des informations de classe Run-Time dans le Guide du programmeur Visual C++.

Graphique de la hiérarchie

Voir aussinbsp ;CObject::GetRuntimeClass, CObject::IsKindOf, RU&NTIME_CLASS, IMPLEMENT_DYNAMIC, IMPLEMENT_DYNCREATE, IMPLEMENT_SERIAL

Index