Partilhar via


Especificando níveis de funcionalidade

Este artigo descreve como adicionar os seguintes níveis de funcionalidades ao seu CObject- classe derivada:

  • Informações da classe de tempo de execução

  • Suporte de criação dinâmico

  • Suporte de serialização

Para uma descrição geral da funcionalidade de CObject , consulte o artigo Com uma classe de CObject.

Para adicionar informações da classe de tempo de execução

  1. Derivar a sua classe de CObject, conforme descrito no artigo de Com uma classe de CObject .

  2. Use a macro de DECLARE_DYNAMIC em sua declaração de classe, como mostrado a seguir:

    class CPerson : public CObject 
    {
       DECLARE_DYNAMIC( CPerson )
    
       // other declarations
    };
    
  3. Use a macro de IMPLEMENT_DYNAMIC no arquivo de implementação) (.CPP da classe. Esta macro usa como argumentos o nome da classe e sua classe base, como segue:

    IMPLEMENT_DYNAMIC( CPerson, CObject )
    

Dica

IMPLEMENT_DYNAMIC sempre colocado no arquivo de implementação .CPP () para a sua classe.A macro de IMPLEMENT_DYNAMIC deve ser avaliada apenas uma vez durante a compilação e não em virtude disso deve ser usado em um arquivo (da interface. H) que poderia ser incluído em mais de um arquivo.

Para adicionar suporte dinâmico de criação

  1. Derivar a sua classe de CObject.

  2. Use a macro de DECLARE_DYNCREATE na declaração da classe.

  3. Define um construtor sem argumentos (um construtor padrão).

  4. Use a macro de IMPLEMENT_DYNCREATE no arquivo de implementação da classe.

Para adicionar suporte de serialização

  1. Derivar a sua classe de CObject.

  2. Substitua a função de membro de Serialize .

    Dica

    Se você chamar Serialize diretamente, ou seja, você não quiser serializar o objeto através de um ponteiro polimórfica, omitir as etapas de 3 a 5.

  3. Use a macro de DECLARE_SERIAL na declaração da classe.

  4. Define um construtor sem argumentos (um construtor padrão).

  5. Use a macro de IMPLEMENT_SERIAL no arquivo de implementação da classe.

Dica

Pontos “de” polimórfica um ponteiro para um objeto de uma classe chamada (A) ou um objeto de qualquer classe derivada da (digamos, B).Para serializar por meio de um ponteiro polimórfica, a estrutura deve determinar a classe de tempo de execução do objeto que está serializando (b), desde que pode ser um objeto de qualquer classe derivada de uma determinada classe base (a).

Para obter mais detalhes sobre como habilitar a serialização quando você deve derivar a sua classe de CObject, consulte os artigos Arquivos em MFC e Serialização.

Consulte também

Conceitos

Derivando uma classe de CObject