Доступ к «этому» внутри метода объекта - PullRequest
0 голосов
/ 09 января 2020

У меня есть опыт работы с 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 , чтобы избежать такого стиля кода. Конечно, я могу создать поле с функцией обратного вызова, которая принимает параметр самой структуры.

...