IMPLEMENT_DYNCREATE
Aktiviert Objekte aus CObject- zur Laufzeit dynamisch zu erstellenden abgeleiteten Klassen, wenn Sie mit dem DECLARE_DYNCREATE Makros verwendet werden.
IMPLEMENT_DYNCREATE(class_name, base_class_name )
Parameter
class_name
Der tatsächliche Name der Klasse.base_class_name
Der tatsächliche Name der Basisklasse.
Hinweise
Das Framework verwendet diese Fähigkeit, neue Objekte dynamisch zu erstellen, z. B. wenn es ein Objekt aus dem Datenträger während der Serialisierung gelesen wird.Fügen Sie das IMPLEMENT_DYNCREATE Makro in der Datei Klassenimplementierungs hinzu.Weitere Informationen finden Sie unter CObject-Klassen-Themen.
Wenn Sie die DECLARE_DYNCREATE und IMPLEMENT_DYNCREATE Makros verwenden, können Sie das Makro RUNTIME_CLASS und die CObject::IsKindOf-Memberfunktion verwenden, um die Objekte der Klasse zur Laufzeit zu bestimmen.
Wenn DECLARE_DYNCREATE in der Klassendeklaration enthalten ist, muss IMPLEMENT_DYNCREATE in der Klassenimplementierung enthalten sind.
Beachten Sie, dass diese Makrodefinition den Standardkonstruktor für die Klasse aufruft.Wenn ein nicht trivialer Konstruktor explizit durch die Klasse implementiert wird, muss sie auch explizit den Standardkonstruktor ebenfalls implementieren.Der Standardkonstruktor kann auf der private-Klasse oder den Member protected-Abschnitte hinzugefügt werden, um zu verhindern, dass es von einer Position außerhalb der Klassenimplementierung aufgerufen.
Beispiel
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)
Anforderungen
Header: afx.h