Udostępnij za pośrednictwem


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

Zobacz też

Informacje

DECLARE_DYNCREATE

RUNTIME_CLASS

CObject::IsKindOf

Koncepcje

Makra MFC i Globals