Использование методов класса для обновления свойств в объекте - PullRequest
1 голос
/ 30 января 2012

Задав мой предыдущий вопрос Я попал в ситуацию, когда я использую пару классов объектов, хранящихся в свойствах друг друга, чтобы сохранить доступ к нескольким полям и методам. Например

classdef Class1

    properties
        Class1Prop % A property accessible from Class1
        Class2     % A cell array of class 2 objects
    end

    methods
        % Construct the class with all of its properties
        function self = Class1()

        end

        function Class1Method
            self.Class1Prop = ...
        end
    end
end

Я заполняю объект Class1, который содержит массив ячеек Class2. Теперь я хотел бы, чтобы методы изменяли значения свойств внутри этого объекта. т.е.

    Class1{index}.Class2{index}.Class2Method 

выполнит некоторые вычисления , и теперь будет хранить это значение где-то в этом экземпляре класса.

Как указано в документации к Matlab:

"Если функция изменяет объект дескриптора, переданный в качестве входного аргумента, модификация влияет на объект, на который ссылаются как оригинал и скопированные ручки. "

Чтобы получить желаемую функциональность, я должен использовать классы значений (с методами, возвращающими объект класса), чтобы изменить значение, возвращаемое вызовом метода. Возвращаемое значение также может быть присвоено:

Class1{index}.Class2{index} = Class1{index}.Class2{index}.Class2Method

Однако в идеале

Class1{index}.Class2{index}.Class2Method

обновит свойства Class2. И , что - это функциональность, которую я хочу. Это возможно?

1 Ответ

0 голосов
/ 31 января 2012
Class1{index}.Class2{index} = Class1{index}.Class2{index}.Class2Method

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...