Compartilhar via


IMPLEMENT_DYNCREATE

Permite que objetos de CObject-classes a serem criados dinamicamente em execução derivadas tempo quando usado com o DECLARE_DYNCREATE macro.

IMPLEMENT_DYNCREATE(class_name, base_class_name )

Parâmetros

  • class_name
    O nome real da classe.

  • base_class_name
    O nome real da classe base.

Comentários

A estrutura usa essa capacidade para criar novos objetos dinamicamente, por exemplo, quando ele lê um objeto de disco durante a serialização.Adicionar o IMPLEMENT_DYNCREATE macro no arquivo de implementação da classe.Para obter mais informações, consulte CObject classe tópicos.

Se você usar o DECLARE_DYNCREATE e IMPLEMENT_DYNCREATE macros, você pode usar o RUNTIME_CLASS macro e o CObject::IsKindOf função de membro para determinar a classe de objetos em tempo de execução.

Se DECLARE_DYNCREATE incluído na declaração da classe, em seguida, IMPLEMENT_DYNCREATE deve ser incluído na implementação da classe.

Observe que essa definição de macro invocará o construtor padrão para sua classe.Se um construtor não trivial explicitamente é implementado pela classe, ele também explicitamente deve implementar o construtor padrão.O construtor padrão pode ser adicionado à classe particular ou protegido seções de membro para impedir que ele seja chamado a partir de fora a implementação da classe.

Exemplo

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)

Requisitos

Cabeçalho: Afx. h

Consulte também

Referência

DECLARE_DYNCREATE

RUNTIME_CLASS

CObject::IsKindOf

Conceitos

Globais e Macros do MFC