Compartilhar via


IMPLEMENT_DYNCREATE

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

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 usar essa capacidade de criar dinamicamente novos objetos, por exemplo, quando lê um objeto de disco durante a serialização. Adicionar a macro de IMPLEMENT_DYNCREATE no arquivo de implementação da classe. Para obter mais informações, consulte Tópicos da classe de CObject.

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

Se DECLARE_DYNCREATE é incluído na declaração de classe, então IMPLEMENT_DYNCREATE deve ser incluído na implementação da classe.

Observe que essa definição macro invocará o construtor padrão para a sua classe. Se um construtor não trivial explicitamente é implementado pela classe, também deve implementar explicitamente o construtor padrão também. O construtor padrão pode ser adicionado a private da classe ou às seções de membro de protected para impedi-lo de ser chamado fora da 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

Header: afx.h

Consulte também

Referência

DECLARE_DYNCREATE

RUNTIME_CLASS

CObject::IsKindOf

Conceitos

Macros e globais MFC