CRuntimeClass

CRuntimeClass no tiene una clase base.

Cada clase derivada de CObject se asocia con una estructura CRuntimeClass que puede utilizar para obtener información acerca de su clase base o un objeto en tiempo de ejecución. La capacidad para determinar la clase de un objeto en tiempo de ejecución es útil cuando se necesita la comprobación de argumentos de función de tipo extra, o cuando debe escribir código de propósito especial basado en la clase de un objeto. Información de clase en tiempo de ejecución no es compatible directamente con el lenguaje C++.

La estructura tiene los siguientes miembros:

LPCSTR m_lpszClassName

Una cadena terminada en nulo que contiene el nombre de clase de ASCII.

int m_nObjectSize

El tamaño del objeto, en bytes. Si el objeto tiene miembros de datos que apuntan a la memoria asignada, no se incluye el tamaño de la memoria.

UINT m_wSchema

El número de esquema (– 1 para las clases de nonserializable). Ver la macro IMPLEMENT_SERIAL para obtener una descripción del número de esquema.

CObject * (PASCAL * m_pfnCreateObject))

Un puntero a función al constructor predeterminado que se crea un objeto de la clase (válido sólo si la clase admite creación dinámica; en caso contrario, devuelve NULL).

CRuntimeClass * (PASCAL * m_pfn_GetBaseClass))

Si la aplicación está vinculada dinámicamente a la versión AFXDLL de MFC, un puntero a una función devuelve la estructura CRuntimeClass de la clase base.

CRuntimeClass * m_pBaseClass

Si su aplicación es vinculada estáticamente a MFC, un puntero a la estructura CRuntimeClass de la clase base.

Fu&nción únicamente en las ediciones Enterprise y Professionalnbsp;  Vinculación estática a MFC sólo se admite en Visual C++ Professional Edition y Enterprise Edition. Para obtener más información, consulte Ediciones de Visual C++.

CObject * CreateObject);

Las clases derivadas de CObject pueden apoyar creación dinámica, que es la capacidad para crear un objeto de una clase especificada en tiempo de ejecución. Documento, vista y clases de marco, por ejemplo, deberían apoyar creación dinámica. La función de miembro de CreateObject puede utilizarse para implementar esta función y crear objetos para estas clases en tiempo de ejecución. Para obtener más información sobre la creación dinámica y el miembro de CreateObject , consulte Temas de clase de CObject y clase CObject: especificar niveles de funcionalidad en la Guía del programador de Visual C++.

BOOL IsDerivedFrom (const CRuntimeClass * pBaseClass) const;

Devuelve TRUE si la clase de miembro de la clase llamada IsDerivedFrom se deriva de la clase base cuya estructura CRuntimeClass es dada como parámetro. IsDerivedFrom camina hacia la parte superior de clase de los miembros la cadena de clases derivadas y devuelve FALSE si no se encuentra una coincidencia de la clase base.

&Notanbsp;  Para utilizar la estructura CRuntimeClass , debe incluir la macro IMPLEMENT_DYNAMIC, IMPLEMENT_DYNCREATEo IMPLEMENT_SERIAL en la implementación de la clase para la que desea recuperar información de objetos en tiempo de ejecución.

Para obtener más información sobre el uso de CRuntimeClass, consulte el artículo clase CObject: acceso a la información de clase de tiempo de ejecución en el Manual del programador de Visual C++.

Diagrama de jerarquía

Vea tambiénnbsp;CObject::GetRuntimeClass, CObject::IsKindOf, RU&NTIME_CLASS, IMPLEMENT_DYNAMIC, IMPLEMENT_DYNCREATE, IMPLEMENT_SERIAL

Index