Microsoft Visual C++ и MFC. Программирование для Win95 и WinNT

       

Виртуальный метод GetRuntimeClass


Виртуальный метод GetRuntimeClass возвращает указатель на структуру CRuntimeClass, описывающую класс объекта, для которого метод был вызван:

virtual CRuntimeClass* GetRuntimeClass() const;

Для каждого класса, наследованного от CObject поддерживается своя структура CRuntimeClass. Если вы желаете использовать метод GetRuntimeClass в своем классе, наследованном от CObject, вы должны поместить в реализации класса макрокоманду IMPLEMENT_DYNAMIC или IMPLEMENT_SERIAL.

Структура CRuntimeClass содержит различную информацию о классе. Ниже перечислены несколько основные полей этой структуры.

Поле структуры CRuntimeClass

Описание

const char* m_pszClassName

Указатель на строку, закрытую двоичным нулем, в которой расположено имя класса

int m_nObjectSize

Размер объектов класса

WORD m_wSchema

Номер схемы (schema number) класса. Используется при автоматическом сохранении и восстановлении объектов класса в файле. Если объекты класса не могут быть сохранены и восстановлены (в объявлении класса отсутствует макрокоманда IMPLEMENT_SERIAL), m_wSchema содержит значение -1

void (*m_pfnConstruct)

(void* p)

Указатель на конструктор класса, используемый по умолчанию. Этот конструктор не имеет параметров

CRuntimeClass* m_pBaseClass

Указатель на структуру CRuntimeClass, содержащую аналогичную информацию о базовом классе

Кроме перечисленных элементов структуры, она содержит метод CreateObject. Этот метод позволяет динамически создать объект соответствующего класса уже во время работы приложения. Если объект класса не создан, метод возвращает значение NULL.

CObject* CreateObject();



Содержание раздела