IMPLEMENT_DYNCREATE
Включает объекты CObject- производные классы, который должен быть создан динамически во время выполнения при использовании с макросом DECLARE_DYNCREATE.
IMPLEMENT_DYNCREATE(class_name, base_class_name )
Параметры
class_name
Фактическое имя класса.base_class_name
Фактическое имя базового класса.
Заметки
Платформа использует эту возможность создания новых объектов динамически, например, когда он считывает объект с диска при сериализации. Добавьте макрос IMPLEMENT_DYNCREATE в файле реализации класса. Дополнительные сведения см. в разделе Разделы класса CObject.
При использовании макросов DECLARE_DYNCREATE и IMPLEMENT_DYNCREATE, можно использовать макрос RUNTIME_CLASS и функцию-член CObject::IsKindOf определение класса объектов во время выполнения.
Если DECLARE_DYNCREATE включается в объявлении класса, IMPLEMENT_DYNCREATE должны содержаться в реализации класса.
Обратите внимание, что это определение макроса вызывает конструктор по умолчанию для класса. Если реализовать нестандартный конструктор явно классом, он также должен явно реализовать конструктор по умолчанию также. Конструктор по умолчанию можно добавить в разделы члена класса private или protected, чтобы предотвратить его из вызывать вне реализации класса.
Пример
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)
Требования
Header: afx.h