IMPLEMENT_DYNCREATE
Umożliwia obiekty z CObject-klasy do utworzenia dynamicznie przy uruchomieniu pochodne czasu, gdy używana z DECLARE_DYNCREATE makro.
IMPLEMENT_DYNCREATE(class_name, base_class_name )
Parametry
nazwa_klasy
Rzeczywista nazwa klasy.base_class_name
Rzeczywista nazwa klasy podstawowej.
Uwagi
Ramy używa tej zdolności 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 korzystasz z DECLARE_DYNCREATE i IMPLEMENT_DYNCREATE makra, następnie można RUNTIME_CLASS makro i CObject::IsKindOf funkcji składowej, aby określić klasę obiektów w czasie wykonywania.
Jeśli DECLARE_DYNCREATE jest zawarte w deklaracji klasy, następnie IMPLEMENT_DYNCREATE muszą być uwzględnione w implementacji klasy.
Należy zauważyć, że definicja tego makra będzie wywoływał domyślnego konstruktora dla klasy.Jeśli Konstruktor skomplikowanych jest jawnie implementowanych przez klasę, jawnie musi implementować również konstruktora domyślnego.Konstruktor domyślny można dodać do tej klasy prywatnego 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