pointers in object-oriented matlab programing

조회 수: 20 (최근 30일)
nathan blanc
nathan blanc 2020년 8월 26일
댓글: Walter Roberson 2020년 8월 28일
I want to create several objects that can "communicate with each other"
for instance, let's say i have a class called "child" and a class called "woman", and i want each child to have a property "mother" and each woman to have a property "children". these properties should contain some sort of pointer to the other objects, so that i can (for instance) add a function to the "woman" class named "feed_children" and i can go over all all her children and change some parameter.
is there a way to do this? i note here that i don't want to simply use some sort of structure, where the children are contained in a "struct" inside the "mother" object. i want all the objects to appear in the workspace and have independent existence, but to have some way of pointing at each other. i know that in many object oriented languages this is very easy to do
many thanks
i attach here my code if anyone is interested, the "TA_system" class is the mother (components are children) and a duct is a component.
  댓글 수: 2
Walter Roberson
Walter Roberson 2020년 8월 27일
MATLAB objects derived from "handle" class effectively use pointers.
nathan blanc
nathan blanc 2020년 8월 27일
thank you for your answer walter, could you expand on that? i tried to read about handle objects before posting the question, my understanding was that they cannot do what i am tryind to do. could you explain how you would do what i asked uding handle objects?

댓글을 달려면 로그인하십시오.

채택된 답변

Walter Roberson
Walter Roberson 2020년 8월 27일
classdef woman < handle
properties
children = handle([]);
end
methods
function obj = woman
end
function addchild(obj, this_child)
obj.children(end+1) = this_child;
end
end
end
classdef child < handle
properties
mother = handle([]);
end
methods
function obj = child(this_mother)
obj.mother = this_mother;
addchild(this_mother, obj);
end
end
end
  댓글 수: 5
nathan blanc
nathan blanc 2020년 8월 28일
thank both of you
Walter Roberson
Walter Roberson 2020년 8월 28일
Yes, figuring out what actually want to do can be tough! And knowing when to stop designing can be hard!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

James Tursa
James Tursa 2020년 8월 27일
MATLAB does not have variable pointers ... at least not in the sense of C/C++ like you are probably alluding to.
  댓글 수: 1
nathan blanc
nathan blanc 2020년 8월 27일
how a about a different sense? is there a way to do what i am trying to do?

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Methods에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by