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