Составители:
226
Допустим, что мы решили добавить класс объектов rational, и
тогда ожидается появление смешанных выражений, которые включа-
ют полиномы и рациональные функции. Причем класс rational дол-
жен находиться выше в иерархии классов, чем класс polynom. Это
может быть реализовано указанием в конструкторе
@rational/rational.m оператора superiorto('polynom'). При этом в
методы класса polynom никаких
изменений не вносится.
Тогда выражения типа p + r, r + p, p*r и r*p, включающие
полином p и рациональную функцию r будут использовать методы,
определенные в конструкторе.
Функция inferiorto('class_A') устанавливает более низкий
приоритет объектов других классов по отношению к объектам класса,
указанного в качестве аргумента; иначе говоря, объекты класса
class_A имеют наивысший приоритет.
Индексация объектов
Общее
правило состоит в том, что индексации объектов ана-
логична индексации структур.
Индексная ссылка. Использование индекса или указателя
поля в правой части оператора присваивания называется индексной
ссылкой. В этих случаях вызывается метод subsref, реализованный в
виде встроенной функции. Соответствующие выражения могут иметь
следующий вид A(I), A{I}, A.field. Каждый из них приводит к вызову
метода subsref в форме
B = subsref(A, S)
Второй аргумент S является структурой с двумя полями. Поле
S.type - строка, содержащая символы '( )', '{ }' или '.', которые опре-
деляют тип индекса. Круглые скобки соответствуют числовому мас-
сиву; фигурные - массиву ячеек; точка - структуре. Поле S.subs - мас-
сив ячеек или строка, содержащая фактические индексы. Двоеточие,
используемое как
индекс, соответствует строковой переменной ':'.
Например, выражение A(1:2, :) вызывает метод subsref(A, S), где S -
структура размера 1х1 вида
S.type = '( )'
S.subs = {1:2, ':'}
Выражение A{1:2} вызывает метод subsref(A, S), где S -
структура вида
S.type ='{ }'
S.subs = {1:2}.
Выражение A.field вызывает метод subsref(A, S), где S -
структура вида
Допустим, что мы решили добавить класс объектов rational, и тогда ожидается появление смешанных выражений, которые включа- ют полиномы и рациональные функции. Причем класс rational дол- жен находиться выше в иерархии классов, чем класс polynom. Это может быть реализовано указанием в конструкторе @rational/rational.m оператора superiorto('polynom'). При этом в методы класса polynom никаких изменений не вносится. Тогда выражения типа p + r, r + p, p*r и r*p, включающие полином p и рациональную функцию r будут использовать методы, определенные в конструкторе. Функция inferiorto('class_A') устанавливает более низкий приоритет объектов других классов по отношению к объектам класса, указанного в качестве аргумента; иначе говоря, объекты класса class_A имеют наивысший приоритет. Индексация объектов Общее правило состоит в том, что индексации объектов ана- логична индексации структур. Индексная ссылка. Использование индекса или указателя поля в правой части оператора присваивания называется индексной ссылкой. В этих случаях вызывается метод subsref, реализованный в виде встроенной функции. Соответствующие выражения могут иметь следующий вид A(I), A{I}, A.field. Каждый из них приводит к вызову метода subsref в форме B = subsref(A, S) Второй аргумент S является структурой с двумя полями. Поле S.type - строка, содержащая символы '( )', '{ }' или '.', которые опре- деляют тип индекса. Круглые скобки соответствуют числовому мас- сиву; фигурные - массиву ячеек; точка - структуре. Поле S.subs - мас- сив ячеек или строка, содержащая фактические индексы. Двоеточие, используемое как индекс, соответствует строковой переменной ':'. Например, выражение A(1:2, :) вызывает метод subsref(A, S), где S - структура размера 1х1 вида S.type = '( )' S.subs = {1:2, ':'} Выражение A{1:2} вызывает метод subsref(A, S), где S - структура вида S.type ='{ }' S.subs = {1:2}. Выражение A.field вызывает метод subsref(A, S), где S - структура вида 226
Страницы
- « первая
- ‹ предыдущая
- …
- 226
- 227
- 228
- 229
- 230
- …
- следующая ›
- последняя »