Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Active les objets d' CObjectclasses dérivées à créer dynamiquement au moment de l'exécution en cas de utilisation avec la macro d' DECLARE_DYNCREATE .
IMPLEMENT_DYNCREATE(class_name, base_class_name )
Paramètres
class_name
Le nom réel de la classe.base_class_name
Le nom réel de la classe de base.
Notes
L'infrastructure utilise cette possibilité de créer de nouveaux objets dynamiquement, par exemple, lorsqu'elle lit un objet à partir de le disque pendant la sérialisation.Ajoutez la macro d' IMPLEMENT_DYNCREATE dans le fichier d'implémentation de classe.Pour plus d'informations, consultez Rubriques de classe de CObject.
Si vous utilisez des macros d' DECLARE_DYNCREATE et d' IMPLEMENT_DYNCREATE , vous pouvez ensuite utiliser la macro d' RUNTIME_CLASS et la fonction membre d' CObject::IsKindOf pour déterminer la classe de vos objets au moment de l'exécution.
Si DECLARE_DYNCREATE est inclus dans la déclaration de classe, alors IMPLEMENT_DYNCREATE doit être inclus dans l'implémentation de classe.
Notez que cette définition de macro appelle le constructeur par défaut pour votre classe.Si un constructeur non trivial est explicitement implémentée par la classe, il doit également implémenter explicitement le constructeur par défaut.Le constructeur par défaut peut être ajouté à private de la classe ou aux sections membres de protected pour l'empêcher d'être appelé depuis l'extérieur de l'implémentation de classe.
Exemple
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)
Configuration requise
Header: afx.h