IMPLEMENT_DYNCREATE
Umožňuje objekty CObject-odvozené třídy mohou být vytvořeny dynamicky při spuštění čas při použití DECLARE_DYNCREATE makro.
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
Rámci používá tato schopnost vytvářet nové objekty dynamicky, například při čtení objektu z disku během serializace.Přidat IMPLEMENT_DYNCREATE v souboru třídy provádění makra.Další informace naleznete v Témata třídy CObject.
Používáte-li DECLARE_DYNCREATE a IMPLEMENT_DYNCREATE makra, můžete použít RUNTIME_CLASS makro a CObject::IsKindOf členské funkce určení třídy objektů v době spuštění.
Pokud DECLARE_DYNCREATE je zahrnuta 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 třídu.Pokud výslovně provádění-trivial konstruktoru třídy musí implementovat také explicitně také výchozí konstruktor.Výchozí konstruktor mohou být přidány do třídy soukromé nebo chráněné členské sekce zabránit volána z mimo implementace 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