Sdílet prostřednictvím


IMPLEMENT_DYNCREATE

Umožňuje objekty z CObject-odvozené třídy, které mají být vytvořeny dynamicky při spuštění čas při použití DECLARE_DYNCREATE makra.

IMPLEMENT_DYNCREATE(class_name, base_class_name )

Parametry

  • class_name
    Skutečný název třídy.

  • base_class_name
    Skutečný název základní třídy.

Poznámky

Systém použije tuto schopnost vytvářet nové objekty dynamicky, například při čtení objektu z disku během serializace.Přidat IMPLEMENT_DYNCREATE makra v souboru implementace třídy.Další informace naleznete v tématu Témat tříd třídy CObject.

Použijete-li DECLARE_DYNCREATE a IMPLEMENT_DYNCREATE makra, můžete použít RUNTIME_CLASS makro a CObject::IsKindOf členské funkce pro určení třídy objektů v době běhu.

Pokud DECLARE_DYNCREATE je obsažen v deklaraci třídy, pak IMPLEMENT_DYNCREATE musí být součástí implementace třídy.

Všimněte si, že tato definice makra vyvolá výchozí konstruktor pro vaši třídu.Pokud netriviální konstruktoru je explicitně implementované třídy, musí implementovat také explicitně výchozí konstruktor.Výchozí konstruktor lze přidat do třídy privátní nebo chráněny členské sekce zabránit volána z mimo implementaci třídy.

Příklad

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)

Požadavky

Záhlaví: afx.h

Viz také

Referenční dokumentace

DECLARE_DYNCREATE

RUNTIME_CLASS

CObject::IsKindOf

Koncepty

MFC – makra a globální prvky