Condividi tramite


IMPLEMENT_DYNCREATE

Abilita gli oggetti di CObject- classi derivate da creare dinamicamente in fase di esecuzione quando viene utilizzata con la macro di DECLARE_DYNCREATE.

IMPLEMENT_DYNCREATE(class_name, base_class_name )

Parametri

  • class_name
    Il nome effettivo della classe.

  • base_class_name
    Il nome effettivo della classe base.

Note

Il framework utilizza questa possibilità di creare dinamicamente i nuovi oggetti, ad esempio, quando legge un oggetto dal disco durante la serializzazione. Aggiungere la macro di IMPLEMENT_DYNCREATE nel file di implementazione della classe. Per ulteriori informazioni, vedere Argomenti relativi alle classi di CObject.

Se si utilizzano le macro di IMPLEMENT_DYNCREATE e di DECLARE_DYNCREATE, è possibile utilizzare la macro di RUNTIME_CLASS e la funzione membro di CObject::IsKindOf per determinare la classe degli oggetti in fase di esecuzione.

Se DECLARE_DYNCREATE è incluso nella dichiarazione di classe, quindi IMPLEMENT_DYNCREATE deve essere incluso nell'implementazione della classe.

Si noti che questa definizione macro richiama il costruttore predefinito per la classe. Se un costruttore non comune in modo esplicito viene implementato dalla classe, deve inoltre implementare in modo esplicito il costruttore predefinito anche. Il costruttore predefinito può essere aggiunto a private della classe o alle sezioni del membro di protetto per impedire che venga chiamato dall'implementazione della classe.

Esempio

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)

Requisiti

Intestazione: afx.h

Vedere anche

Riferimenti

DECLARE_DYNCREATE

RUNTIME_CLASS

CObject::IsKindOf

Concetti

Macro e funzioni globali MFC