У меня есть опыт работы с C ++, и я пытаюсь создать некоторые объекты в Octave.
Я не могу понять, как я могу получить доступ к полям объекта внутри функций-членов.
Уродливое решение - передать объект как параметр в функции-члене.
function increase()
++this.counter;
endfunction
a.counter = 0;
a.inc = @increase; % Unfortunately, this is a callback. Not a member function.
a.inc();
a.counter % Must become 1
Я хочу использовать это в некоторых вещах FEM.
У меня много структур "element" с element.type = "bar" или "луч" или "пружина" или ...
Каждый элемент должен создать свою собственную матрицу функции формы. До сих пор я использую switch(element.type)
, но мне интересно, могу ли я создать функцию-член для каждой структуры, с доступом к полям структуры, например this.field , чтобы избежать такого стиля кода. Конечно, я могу создать поле с функцией обратного вызова, которая принимает параметр самой структуры.