Пример 15.30. Использование функций class-slots и get-defmessage-handler-list

(defclass A (is-a USER) (slot x))

(defmessage-handler A foo ())

(defclass В (is-a A) (slot y))

(class-slots B) (class-slots В inherit)

(get-defmessage-handler-list A)

(get-defmessage-handler-list A inherit)

Функция slot-facets возвращает список значений граней заданного слота (слот может быть как наследуемым, так и явно определенным) — рис. 15.28. Составная величина с нулевой длиной возвращается, если произошла ошибка. В табл. 15.15 приведено описание возвращаемых полей.

Таблица 15.15. Поля, возвращаемые функцией slot-facets

Поле Значение Описание
Тип поля SGL/MLT Простое или составное
Значение по умолчанию STC/DYN/NIL Статическое, динамическое или отсутствует
Распространение при наследовании INH/NIL Наследуется или нет
Доступ RW/R/INT Чтение-запись, только чтение, инициализация
Тип хранения LCL/SHR В экземпляре объекта или в классе
Активность при сопостав­лении образцов RCT/NIL Активный или нет
Источник свойств унаследованного слота СМР/ЕХС Составной или обычный
Видимость слота PUB/PRV Открытый или закрытый
Автоматическое создание акцессоров R/W/RW/NIL Только чтение, только запись, Чтение- запись или отсутствуют
Перегруженный обработчик <имя сообщения> Имя сообщения, посылаемого для переопределения слота функцией make-instance и др.

Рис. 15.27. Использование функций class-slots и get-defmessage-handler-list


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: