virtual CRuntimeClass* GetRuntimeClass( ) const;
Возвращаемое значение
Указатель на структуру CRUNTIMECLASS, соответствующую классу этого объекта, никогда не NULL.
Замечания
Имеется одна структура CRUNTIMECLASS для каждого класса унаследованного от CObject. Элементы структуры следующие:
- LPCSTR m_lpszClassName - Строка с нулевым символом в конце, содержащая имя класса ASCII.
- Int m_nObjectSize - Размер объекта, в байтах. Если объект имеет элементы данных,которые указывают на распределенную память, размер той памяти не включен.
- UINT m_wSchema - Номер схемы (- 1 для классов не умеющих преобразовываться в последовательную форму). См. макрокоманду IMPLEMENT_SERIAL для описания номера схемы.
- CObject * (PASCAL* m_pfnCreateObject) () - Указатель функции к заданному по умолчанию конструктору, который создает объект вашего класса (допустимый только если класс поддерживает динамическое создание, иначе возвращает NULL).
- CRUNTIMECLASS* (PASCAL* m_pfn_GetBaseClass) () - Если ваше приложение динамически связано с AFXDLL версией MFC, указатель на функцию, которая возвращает структуру CRUNTIMECLASS базового класса.
- CRUNTIMECLASS* m_pBaseClass - Если ваше приложение статически связано с MFC, указатель на структуру CRUNTIMECLASS базового класса.
Эта функция требует использования макрокоманды IMPLEMENT_DYNAMIC или IMPLEMENT_SERIAL в реализации класса. Вы получите неправильные результаты иначе.
Пример
// См. CObList::CObList для просмотра класса CAge,
// используемого в CObject примерах.
// пример для CObject::GetRuntimeClass
CAge a(21);
CRuntimeClass* prt = a.GetRuntimeClass();
ASSERT( strcmp( prt->m_lpszClassName, "CAge" ) == 0 );