Udostępnij za pośrednictwem


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

Zobacz też

Informacje

DECLARE_DYNCREATE

RUNTIME_CLASS

CObject::IsKindOf

Koncepcje

Makra i funkcje globalne MFC