2016-12-27 13 views
0

Можно ли прикрепить функцию к свойству класса типа struct? Предполагаемое использование:Присоединение функции к структуре Matlab

% Definition: 
classdef a < handle 
    properties 
    bar 
    end 
    methods 
    function obj = a() 
     obj.bar = struct; 
     %obj.bar.attachFunction('apply', @someFunction); <-- something like this 
    end 
    end 
end 

% Usage: 
foo = a(); 
foo.bar.apply('test'); 
foo.bar.var1 = 1; 
foo.bar.var2 = 2; 

ответ

0

Ну, это было на самом деле довольно просто, как только я использовал свой разум.

classdef a < handle 
    properties 
    bar 
    end 
    methods 
    function obj = a() 
     obj.bar = struct; 
     obj.bar.apply = @(str) @obj.barApply(str); 
    end 
    end 
    methods (Access=protected) 
    function barApply(obj, str) 
     obj.bar.something = str; 
    end 
    end 
end 

foo = a(); 
foo.bar.apply('monkey'); 
foo.bar.apple = 2; 
+0

Здесь вы добавляете поля в свойство объекта, но я думал, что вам также может быть интересно добавить динамические свойства к экземпляру. Вы можете прочитать об этом здесь: https://www.mathworks.com/help/matlab/matlab_oop/dynamic-properties--adding-properties-to-an-instance.html –

 Смежные вопросы

  • Нет связанных вопросов^_^