我正在使用 OOP 现象在 Matlab 中工作,但我希望像C/C++
中的朋友功能这样的现象即将一个函数的输出传递给同一类中的其他函数以供其使用。
在这里,myClass
是我的班级,其中myFunc1
需要输出myFunc2
,如何将这两个函数作为朋友。有没有像其他语言一样的设施?
我的代码:
classdef myClass
properties (Access=private)
M;
T
end
methods
function obj = myClass(M,T)
obj.M= M;
obj.T=T;
end
function H=myFunc1(obj)
obj.M{obj.jj}=jj+ii;
H=obj.M{obj.jj};
end
function myFunc2(obj)
obj.T= H;
end
end
end
答案 0 :(得分:0)
不确定你想要什么,但我想你想在myFunc1
内执行myFunc2
?如果是这种情况,您只需在myFunc1
内执行myFunc2
,如下所示:obj.myFunc1();
。例如(这是一般示例):
classdef myClass
properties (Access=private)
M;
T;
end
methods
function obj = myClass()
end
function H=myFunc1(obj)
H = 3;
end
function myFunc2(obj)
disp(obj.myFunc1())
end
end
end
如果你想让myFunc2
隐藏在类的其余部分,你可以将它定义为嵌套函数,例如:
classdef myClass
properties (Access=private)
M;
T;
end
methods
function obj = myClass()
end
function myFunc2(obj)
function H=myFunc1()
H = 3;
end
disp(myFunc1())
end
end
end
答案 1 :(得分:0)
一个class-member
函数输出到另一个是简单调用函数并在该函数中收集输出,代码:
function myFunc2(obj)
H=myFunc1(obj);
obj.T= H;
end