【发布时间】:2011-10-28 11:21:47
【问题描述】:
假设我有以下课程:
classdef myClass < handle
properties
A = 1
end
methods
function obj = myClass(val)
obj.A = val;
end
end
end
假设我实例化了这个类的一个实例,然后稍微操作它,然后复制它。因为它是一个句柄类,所以“副本”实际上只是 same 对象的另一个实例:
>> q = myClass(10);
>> q.A = 15;
>> w = q;
>> disp(w.A)
15
但我想观看 A 而无需实例化 myClass。天真地做着
>> value = w.A
不起作用,因为这只是复制值; changningw.A以后不会改value。
有没有办法为w.A 提供“指针”或“引用”而无需创建单独的句柄类?我宁愿保留符号 w.A 而不是 w.A.value 之类的符号(我必须创建句柄类来包含该值)。
编辑:我使用此功能是为了帮助封装我的代码以供我的研究实验室使用。我正在设计 MATLAB 和 Arduino 之间的接口来控制空中和地面车辆;我希望访问“vehicle.pwmMax”、“vehicle.flightCeiling”等内容来封装底层对象:“vehicle.Globals.pwmMax.value”等。
【问题讨论】:
-
我认为答案是否定的;我相信您需要保留对类实例的引用,并在每次要引用实例变量 A 时执行
foo.A。 -
@strictlyrude27:如果你能解释一下你打算如何使用它,可能有更好的方法来做到这一点......
-
更新了原帖来解释我的意图
标签: matlab oop matlab-class