IMPLEMENT_DYNCREATE
Habilita los objetos de CObject- clases derivadas que se creen dinámicamente en tiempo de ejecución cuando se utiliza con la macro de DECLARE_DYNCREATE .
IMPLEMENT_DYNCREATE(class_name, base_class_name )
Parámetros
class_name
El nombre real de la clase.base_class_name
El nombre real de la clase base.
Comentarios
El marco de trabajo usa esta capacidad para crear nuevos objetos dinámicamente, por ejemplo, cuando lee un objeto desde el disco durante la serialización.Agregue la macro de IMPLEMENT_DYNCREATE en el archivo de implementación de la clase.Para obtener más información, vea temas de la clase de CObject.
Si utiliza las macros de DECLARE_DYNCREATE y de IMPLEMENT_DYNCREATE , puede utilizar la macro de RUNTIME_CLASS y la función miembro de CObject::IsKindOf para determinar el tipo de objetos en tiempo de ejecución.
Si DECLARE_DYNCREATE se incluye en la declaración de clase, después IMPLEMENT_DYNCREATE se debe incluir en la implementación de la clase.
Observe que esta definición de macro invocará al constructor predeterminado para la clase.Si la clase implementa un constructor no trivial explícitamente, también debe implemente explícitamente el constructor predeterminado también.El constructor predeterminado puede ser agregado a private de la clase o a las secciones del miembro de protected para evitar que se llamará desde fuera de la implementación de la clase.
Ejemplo
class CMyDynCreateObj : public CObject
{
int m_Num;
public:
DECLARE_DYNCREATE(CMyDynCreateObj)
CMyDynCreateObj(int Num) { m_Num = Num; }
private:
CMyDynCreateObj() { m_Num = 0; } // provide default constructor only for
// dynamic creation
};
IMPLEMENT_DYNCREATE(CMyDynCreateObj, CObject)
Requisitos
Header: afx.h