(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