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