CRuntimeClass

CRuntimeClass имеет базовый класс.

Каждый класс, производный от CObject ассоциируется с CRuntimeClass структурой, который можно использовать для получения сведений об объекте или его базовый класс во время выполнения. Возможность определить класс объекта во время выполнения полезен, когда требуется дополнительная проверка аргументов функции типа, или когда необходимо написать код специального назначения, основанный на классе объекта. Сведения класса во время выполнения не поддерживается непосредственно на языке C++.

Структура имеет следующие члены:

LPCSTR m_lpszClassName

Завершающим нулем строку, содержащую имя класса ASCII.

int m_nObjectSize

Размер объекта в байтах. Если объект имеет членов данных этой точки выделенной памяти, размер этой памяти не включен.

UINT m_wSchema

Число схемы (–1 для классов, запретить сериализацию). Увидеть IMPLEMENT_SERIAL макрос для описания схемы номер.

CObject * (Паскаль * m_pfnCreateObject))

Указатель на функцию в конструктор по умолчанию, который создает объект класса (действительно только если класс поддерживает динамическое создание; в противном случае возвращает NULL).

CRuntimeClass * (Паскаль * m_pfn_GetBaseClass))

Если ваше приложение динамически связана с AFXDLL версии MFC, указатель на функцию, возвращает структуру CRuntimeClass базового класса.

CRuntimeClass * m_pBaseClass

Если ваше приложение статически связанная с MFC, указатель на структуру CRuntimeClass базового класса.

Функция только в профессиональных и корпоративных изданий   Статическое связывание с MFC поддерживается только в Visual C++ Professional и корпоративных изданий. Для получения дополнительной информации, смотрите Выпуски Visual C++.

CObject * CreateObject);

Классы, производные от CObject может поддерживать динамическое создание, который является возможность создания объекта заданного класса во время выполнения. Документ, просматривать и классы кадра, например, следует поддерживать динамическое создание. Функция CreateObject -член может использоваться для осуществления этой функции и создавать объекты для этих классов во время выполнения. Для получения дополнительных сведений о динамического создания и член CreateObject , см. CObject класса темы и классе CObject: указание уровня функциональности в Руководстве по Visual C++ программист.

BOOL IsDerivedFrom (const CRuntimeClass * pBaseClass) const;

Возвращает значение TRUE , если класс вызов IsDerivedFrom члена класса является производным от базового класса, структура которого CRuntimeClass используется в качестве параметра. IsDerivedFrom ходит от члена класса в цепи производных классов вплоть до верхней и возвращает значение FALSE , если совпадение не найдено для базового класса.

Примечаниеnbsp;  Чтобы использовать структуру CRuntimeClass , необходимо включить макрос IMPLEME&NT_DYNAMIC, IMPLEMENT_DYNCREATEили IMPLEMENT_SERIAL в реализации класса, для которого необходимо получить информацию времени выполнения объекта.

Для получения дополнительных сведений об использовании CRuntimeClass, см. статью классе CObject: доступ К информации класса во время выполнения в Руководстве по Visual C++ программист.

Иерархическая схема

См. такжеnbsp;CObject::GetRuntimeClass, CObject::IsKindOf, RU&NTIME_CLASS, IMPLEMENT_DYNAMIC, IMPLEMENT_DYNCREATE, IMPLEMENT_SERIAL

Index