假設我有一個myClass < handle
,並帶有屬性A
。如果我創建了一個myClass
的實例,比如說myObj
,並將myObj.A
傳遞給一個函數,比如說function myFunc(val)
,那麼myFunc
內部是否有可能看到val
傳遞給它的屬性是myObj
?MATLAB - 獲取屬性所屬的對象?
編輯:對於背景:
我正在寫一個API(在某種意義上)與Arduino硬件爲我的研究實驗室接口。總體類別被稱爲Vehicle
,其屬性爲PinManager < handle
,TelemCollector < handle
和各種Device < handle
。它也有辦法做像runMotor()
,getAltitude()
等。我有一個方法TelemCollector.telemFetch()
這是一個計時器事件的回調;我想TelemCollector.telemFetch()
能夠訪問Vehicle
方法(即getAltitude()
);天真地,我只會讓Vehicle
屬於TelemCollector
來訪問這些方法。我希望不必這樣做。
EDIT2:什麼我試圖完成的示例代碼段:
classdef Vehicle < handle
properties
PinManager
TelemCollector
Devices
end
methods
function obj = Vehicle(PM, TC, D)
obj.TC = TelemCollector();
obj.PM = PinManager();
obj.Devices = D();
end
function val = getAltitude(obj)
%# read altitude from a connected Device
end
function val = getSpeed(obj)
%# read speed from connected Device
end
end
end
classdef TelemCollector < handle
properties
%# ...
end
methods
function fetchTelem(obj)
%# do getAltitude(), getSpeed(), etc, here.. but I want to access
%# Vehicle.getAltitude() and Vehicle.getSpeed() somehow!
end
end
end
我不太明白 - 首先,你說車輛類TelemCollector的屬性,並且在你結束你說你是想給TelemCollector型車輛的性能?如果telemFetch()需要訪問這兩個對象的內部結構,它需要是「外」對象的方法,而不是一個內,使其工作。 –
...也許你可以張貼實際的代碼片段,而不是一個文字描述;這會更容易理解...... –
將代碼片段添加到OP。我想'telemFetch()'訪問'Vehicle'方法;這是可行的,如果'Vehicle'那'TelemCollector'是一個屬性是TelemCollector'的'屬性。因爲一切都是句柄,他們會引用正確的對象實例。當然,我真的不想那樣做。 –