Составители:
227
S.type = '.'
S.subs = 'field'.
Эти простые обращения могут быть объединены в более
сложные индексные выражения. В этом случае length(S) определяет
количество уровней индексации. Например, выражение A(1,
2).name(3:4) вызывает метод subsref(A, S), где S - структура размера
3х1 со следующими значениями полей
S(1).type = '( )' S(2).type = '.' S(3).type = '( )'
S(1).subs = '{1, 2}' S(2).subs = 'name' S(3).subs = '{3:4}'
Индексное присваивание. Использование индекса или ука-
зателя поля в левой части оператора присваивания называется ин-
дексным присваиванием. В этих случаях MATLAB вызывает метод
subsasgn, реализованный в виде встроенной функции. Соответствую-
щие выражения могут иметь следующий вид
A(I) = B
A{I} = B
A.field = B
Каждый из них приводит к вызову метода subsasgn в форме
A = subsasgn(A, S, B)
Поля структуры
S аналогичны полям структуры в случае ин-
дексной ссылки.
Функция subsasgn различает присваивание вида A(i) = [ ] и
A(i) = B, где B - пустой массив.
Если правая часть - символ пустого массива [ ], а не перемен-
ная, то третий аргумент входа функции subsasgn является строкой '[
]'. Следовательно, при разработке собственного метода типа subsasgn
следует различать эти
два случая.
8.5 Наследование
Процедура, когда объекты одного класса приобретают свойства
объектов другого класса или классов, называется процессом наследо-
вания. Если некоторый объект (дочерний) наследует свойства другого
(родителя), дочерний объект включает все поля родительского объек-
та и может вызывать соответствующие методы.
S.type = '.' S.subs = 'field'. Эти простые обращения могут быть объединены в более сложные индексные выражения. В этом случае length(S) определяет количество уровней индексации. Например, выражение A(1, 2).name(3:4) вызывает метод subsref(A, S), где S - структура размера 3х1 со следующими значениями полей S(1).type = '( )' S(2).type = '.' S(3).type = '( )' S(1).subs = '{1, 2}' S(2).subs = 'name' S(3).subs = '{3:4}' Индексное присваивание. Использование индекса или ука- зателя поля в левой части оператора присваивания называется ин- дексным присваиванием. В этих случаях MATLAB вызывает метод subsasgn, реализованный в виде встроенной функции. Соответствую- щие выражения могут иметь следующий вид A(I) = B A{I} = B A.field = B Каждый из них приводит к вызову метода subsasgn в форме A = subsasgn(A, S, B) Поля структуры S аналогичны полям структуры в случае ин- дексной ссылки. Функция subsasgn различает присваивание вида A(i) = [ ] и A(i) = B, где B - пустой массив. Если правая часть - символ пустого массива [ ], а не перемен- ная, то третий аргумент входа функции subsasgn является строкой '[ ]'. Следовательно, при разработке собственного метода типа subsasgn следует различать эти два случая. 8.5 Наследование Процедура, когда объекты одного класса приобретают свойства объектов другого класса или классов, называется процессом наследо- вания. Если некоторый объект (дочерний) наследует свойства другого (родителя), дочерний объект включает все поля родительского объек- та и может вызывать соответствующие методы. 227
Страницы
- « первая
- ‹ предыдущая
- …
- 227
- 228
- 229
- 230
- 231
- …
- следующая ›
- последняя »