Simple handle problem (I think)
2 views (last 30 days)
Show older comments
Marc-Olivier Labrecque-Goulet
on 17 Apr 2017
Commented: Marc-Olivier Labrecque-Goulet
on 17 Apr 2017
Hi, I'm having trouble understanding how to use handles but I understand the basic principle so I know I should be using them for what I do. I want to make links between 2 objects of the same class. Here is an exemple.
class classA
properties
val1 = classB.empty;
val2 = [0,0];
%here the variable I should probably use handle.
links = classA.empty;
end
%here is how I use it in a script or function :
obj1 = classA;
obj2 = classA;
%I add obj2 to the list of links obj1 is doing and vice versa:
obj1.links=[obj1.links,obj2];
obj2.links=[obj2.links,obj1];
I guess links could be an object type handle but I have no clue how I should write it, and how to set it.
0 Comments
Accepted Answer
Sebastian Castro
on 17 Apr 2017
Edited: Sebastian Castro
on 17 Apr 2017
This should work, with the exception that classes in MATLAB are by default "value classes". This means that when you say
obj1.links=[obj1.links,obj2];
and then refer to obj1.links(1) (assuming it was previously empty), you're actually referring to a copy of obj2 instead of obj2 itself.
To declare a class as a handle class, i.e., passed by reference, change the first line of your class definition to inherit from the handle superclass:
classdef classA < handle
- Sebastian
More Answers (0)
See Also
Categories
Find more on Function Handles in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!