Matlab中的朋友功能

时间:2014-05-25 22:35:41

标签: matlab class oop output friend-function

我正在使用 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

2 个答案:

答案 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