2
我有一个类是通过处理,我想通过值复制它并将其存储在某个地方。但是,如果我改变了课堂上的任何内容,它也会更改它的副本。复制Handle Class的类的方法?
这里是我想复制我的类的例子:
classdef MyClass < handle
properties
data;
end
methods
function M = MyClass()
M.data=5;
end
end
end
这是一个测试类测试修改:
classdef Test < handle
properties
store
end
methods
function N = Test(M)
N.store = M;
end
end
end
现在,我们创建MyClass的实例,并将其存储in Test:
>> m=MyClass
m =
MyClass handle
Properties:
data: 5
Methods, Events, Superclasses
>> a=Test(m)
a =
Test handle
Properties:
store: [1x1 MyClass]
Methods, Events, Superclasses
>> a.store
ans =
MyClass handle
Properties:
data: 5
Methods, Events, Superclasses
最后,如果我在'm'中更改'data'的值,我不希望它更改值i但是它看起来像MyClass被存储在'商店'引用:
>> m.data=3;
>> a.store
ans =
MyClass handle
Properties:
data: 3
Methods, Events, Superclasses
>> a.store.data
ans =
3
是否有可能复制一个“句柄”类?或者我是否需要改变我的课程以使其发挥作用?
不错!这正是我需要的:) – gnychis