Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo descreve como adicionar os seguintes níveis de funcionalidade à sua classe derivada de CObject:
Informações de classe em tempo de execução
Suporte à criação dinâmica
Suporte à serialização
Para obter uma descrição geral da CObject funcionalidade, consulte o artigo Derivando uma classe de CObject.
Para adicionar informações de classe durante o tempo de execução
Derive sua classe de
CObject, conforme descrito no artigo Derivando uma classe de CObject .Use a macro DECLARE_DYNAMIC em sua declaração de classe, conforme mostrado aqui:
class CPerson : public CObject { DECLARE_DYNAMIC(CPerson) // other declarations };Utilize a macro IMPLEMENT_DYNAMIC no ficheiro de implementação (.CPP) da sua classe. Essa macro usa como argumentos o nome da classe e sua classe base, da seguinte maneira:
IMPLEMENT_DYNAMIC(CPerson, CObject)
Observação
Sempre coloque IMPLEMENT_DYNAMIC no arquivo de implementação (. CPP) para a sua turma. A macro IMPLEMENT_DYNAMIC deve ser avaliada apenas uma vez durante uma compilação e, portanto, não deve ser usada em um arquivo de interface (. H) que poderiam potencialmente ser incluídos em mais de um arquivo.
Para adicionar suporte à criação dinâmica
Derive sua classe de
CObject.Use a macro DECLARE_DYNCREATE na declaração de classe.
Defina um construtor sem argumentos (um construtor padrão).
Utilize a macro IMPLEMENT_DYNCREATE no ficheiro de implementação de classe.
Para adicionar suporte à serialização
Derive sua classe de
CObject.Sobrescreva a função de membro
Serialize.Observação
Se você chamar
Serializediretamente, ou seja, não quiser serializar o objeto por meio de um ponteiro polimórfico, omita as etapas 3 a 5.Use a macro DECLARE_SERIAL na declaração de classe.
Defina um construtor sem argumentos (um construtor padrão).
Use a macro IMPLEMENT_SERIAL no arquivo de implementação de classe.
Observação
Um "ponteiro polimórfico" aponta para um objeto de uma classe (chame-o de A) ou para um objeto de qualquer classe derivada de A (digamos, B). Para serializar através de um ponteiro polimórfico, a estrutura deve determinar a classe de tempo de execução do objeto que está serializando (B), uma vez que pode ser um objeto de qualquer classe derivada de alguma classe base (A).
Para obter mais detalhes sobre como habilitar a serialização quando você deriva sua classe do CObject, consulte os artigos Arquivos em MFC e Serialização.