IMPLEMENT_DYNCREATE
Umożliwia obiektów z CObject-pochodnych klasy powinny być tworzone dynamicznie przy uruchomieniu czas, kiedy używane z DECLARE_DYNCREATE makro.
IMPLEMENT_DYNCREATE(class_name, base_class_name )
Parametry
class_name
Rzeczywista nazwa klasy.base_class_name
Rzeczywista nazwa klasy podstawowej.
Uwagi
Ramach wykorzystuje tę zdolność do tworzenia nowych obiektów dynamicznie, na przykład, gdy odczytuje obiektu z dysku podczas serializacji.Dodaj IMPLEMENT_DYNCREATE makro w pliku implementacji klasy.Aby uzyskać więcej informacji, zobacz Tematy klasy CObject.
Jeśli używasz DECLARE_DYNCREATE i IMPLEMENT_DYNCREATE makr, można użyć RUNTIME_CLASS makro i CObject::IsKindOf funkcji składowej, aby określić klasę obiektów w czasie wykonywania.
Jeśli DECLARE_DYNCREATE zawarte w deklaracji klasy, następnie IMPLEMENT_DYNCREATE muszą być uwzględnione w implementacji klasy.
Należy zauważyć, że ta definicja makro będzie wywoływał domyślnego konstruktora dla klasy.Jeśli Konstruktor trivial jawnie jest implementowana przez klasę, to także jawnie implementować również konstruktora domyślnego.Konstruktor domyślny mogą być dodawane do tej klasy prywatne lub chronione Członkowskich sekcje, aby zapobiec wywoływana z zewnątrz Implementacja klasy.
Przykład
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)
Wymagania
Nagłówek: afx.h