Condividi tramite


Specifica dei livelli di funzionalità

In questo articolo viene descritto come aggiungere i seguenti livelli di funzionalità al CObject- classe derivata:

  • Informazioni sulla classe di runtime

  • Supporto dinamico di progettazione

  • Supporto della serializzazione

Per una descrizione generale di funzionalità di CObject, vedere l'articolo Derivando una classe da CObject.

Per aggiungere informazioni sulla classe di runtime

  1. Derivare la classe da CObject, come descritto nell'articolo di Derivando una classe da CObject.

  2. Utilizzare la macro di DECLARE_DYNAMIC nella dichiarazione di classe, come illustrato di seguito:

    class CPerson : public CObject 
    {
       DECLARE_DYNAMIC( CPerson )
    
       // other declarations
    };
    
  3. Utilizzare la macro di IMPLEMENT_DYNAMIC nel file di implementazione (.CPP) della classe. Questa macro accetta come argomenti il nome della classe e della relativa classe base, come segue:

    IMPLEMENT_DYNAMIC( CPerson, CObject )
    

Nota

IMPLEMENT_DYNAMIC sempre inserito nel file di implementazione (.CPP) della classe.La macro di IMPLEMENT_DYNAMIC deve essere valutata soltanto una volta durante la compilazione e non deve essere utilizzata in un file di interfaccia (. H) che potrebbe potenzialmente essere incluso in più file.

Per aggiungere il supporto dinamico di progettazione

  1. Derivare la classe da CObject.

  2. Utilizzare la macro di DECLARE_DYNCREATE nella dichiarazione di classe.

  3. Definire un costruttore senza argomenti (un costruttore predefinito).

  4. Utilizzare la macro di IMPLEMENT_DYNCREATE nel file di implementazione della classe.

Per aggiungere il supporto della serializzazione

  1. Derivare la classe da CObject.

  2. Eseguire l'override della funzione membro di Serialize.

    Nota

    Se si chiama direttamente Serialize, ovvero, non si desidera serializzare l'oggetto tramite un puntatore polimorfico, omettere i passaggi da 3 a 5.

  3. Utilizzare la macro di DECLARE_SERIAL nella dichiarazione di classe.

  4. Definire un costruttore senza argomenti (un costruttore predefinito).

  5. Utilizzare la macro di IMPLEMENT_SERIAL nel file di implementazione della classe.

Nota

Punti "di un puntatore polimorfico" a un oggetto di una classe (chiamata A) o a un oggetto di qualsiasi classe derivata da ricordare (A, B).Per serializzare tramite un puntatore polimorfico, il framework deve determinare la classe di runtime dell'oggetto che si sta la serializzazione (B), poiché potrebbe essere un oggetto di qualsiasi classe derivata da una classe di base (A).

Per ulteriori informazioni su come attivare la serializzazione quando si deriva la classe da CObject, vedere gli articoli File in MFC e Serializzazione.

Vedere anche

Concetti

Derivazione da una classe da CObject