Simple handle problem (I think)
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Marc-Olivier Labrecque-Goulet
am 17 Apr. 2017
Kommentiert: Marc-Olivier Labrecque-Goulet
am 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 Kommentare
Akzeptierte Antwort
Sebastian Castro
am 17 Apr. 2017
Bearbeitet: Sebastian Castro
am 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
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Function Handles finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!