在MATLAB中将对象传递给其他对象

在MATLAB中将对象传递给其他对象,matlab,object,constants,Matlab,Object,Constants,我从MATLAB中的面向对象编程开始,对如何最好地将对象传递给其他对象感到困惑,因为MATLAB没有静态类型定义 我有三个不同的类,它们都包含一些常量。现在,我想在第三个类的方法中使用两个类中定义的常量——我应该如何做到这一点?这些类不在层次结构中 >,我在找一些类似于C++的东西。 问题如下所示。如何将“*Object1”和“*Object2”引用写入access const1和const2 classdef Object1 properties (Constant)

我从MATLAB中的面向对象编程开始,对如何最好地将对象传递给其他对象感到困惑,因为MATLAB没有静态类型定义

我有三个不同的类,它们都包含一些常量。现在,我想在第三个类的方法中使用两个类中定义的常量——我应该如何做到这一点?这些类不在层次结构中

<> >,我在找一些类似于C++的东西。 问题如下所示。如何将“*Object1”和“*Object2”引用写入access const1和const2

classdef Object1

    properties (Constant)
        const1 = 100;
    end

    methods
        function Obj1 = Object1()
        end
end

classdef Object2

    properties (Constant)
        const2 = 200;
    end

    methods
        function Obj2 = Object2()
        end
end

classdef Object3

    properties (Immutable)
        property3
    end

    methods
        function Obj3 = Object3()
            Obj3.property3 = *Object1.const1 + *Object2.const2;
        end
end

只要去掉星号,我想你就有你需要的了

代码中还有一些其他语法错误(用
SetAccess=Immutable
替换
Immutable
,并将缺少的
end
s添加到
classdef
s),但一旦我做了这些更改,我会得到:

a = Object3
a = 
  Object3

  Properties:
    property3: 300
  Methods

一般来说,要引用另一个类的
常量
属性,只需在属性前面加上类名(如果类在包中,可能还有包名)。

我想,如果您提供一个示例,它会更清楚。另外,如果你不需要,不要参与matlab中的OOP,坚持他们更实用的传统模式。谢谢你的提示。我更愿意使用OOP,因为目前我的函数实现中有10多个全局变量,而不是将它们定义为全局变量,我应该在许多函数调用中包含这些常量,这似乎有点令人畏惧,也不清楚。我想最好在函数实现中使用结构,但我仍然认为,与函数实现相比,OOP的一个优势是恒定访问限制。但让我们看看,当我运行OOP时,它将如何处理对象之间传递的常量。