НА ГЛАВНУЮ

Модель объекта времени выполнения (run-time object)

Как будет показано дальше, все классы, производные от CObject и CruntimeClass, приобретают определенные возможности по обслуживанию объектов, включающие динамическую информацию о классе (run-time class information), сериализацию и динамическое создание объекта.

Здесь описаны макросы, которые облегчают использование этих возможностей.

DECIARE_DYNAMIC(className)

Разрешает доступ к динамической информации об объекте класса (должен использоваться при объявлении класса); className— действительное С++-имя класса без кавычек.

IMPLEMENT_DYNAMIC(className, baseClassName)

Генерирует код, необходимый для получения динамической информации об объекте класса, производного от CObject (должен использоваться в реализации класса).

DECLARE_DYNCREATE(className)

Разрешает динамическое создание объекта, производного от CObject, и получение доступа к динамической информации об этом объекте (должен использоваться при объявлении класса).

IMPLEMENT_DYNCREATE(className, baseClassName)

Разрешает динамическое создание объекта (должен использоваться в реализации класса) и доступ к динамической информации о классе. Приложение использует эту возможность для динамического создания нового объекта, например, когда требуется прочитать объект из файла на диске во время процесса сериализации.

При использовании этих макросов вы получаете возможность использовать макрос RUNTIME_GLASS и функцию CObject::IsKindOf для определения класса вашего объекта во время выполнения программы.

DECLARE_SERIAL(ClassName)

Генерирует С++-код, необходимый для сериализации объекта класса, производного от CObject (должен использоваться при объявлении класса) и доступа к динамической информации о классе. Определение этого макроса включает в себя все функциональные возможности, предоставляемые обоими макросами DECLARE_DYNAMIC и DECLARE_DYNCREATE.

IMPLEMENT_SERXAL(className, baseClassName, wSchema)

Генерирует С++-код, необходимый для сериализации объекта класса, производного от CObject (должен использоваться в реализации класса) и доступа к динамической информации о классе. Параметр wSchema— переменная типа UINT, определяющая "номер версии" приложения, которой может быть закодирован архив, для возможности применения процесса десериализации. Этот номер не должен быть равен -1.

RUNTIME_CLASS (dassName)

Для объектов, производных от CObject и объявленных с использованием макросов DECLARE_DYNAMIC, DECLARE_DYNCREATE или DECLARE_SERIAL, возвращает указатель на структуру CRuntimeClass, которая соответствует имени класса className.


Купи у нас - мфу samsung фотомаг на Крещатике.

 

© webdestination 2007