1

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

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

所以,我在 C++ 中寻找类似#include 的东西。

问题如下图所示。如何编写“*Object1”和“*Object2”引用来访问 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
4

1 回答 1

2

只需删除星号,我认为你有你需要的东西。

您的代码中还有一些其他语法错误(替换ImmutableSetAccess = immutable,并将缺少end的 s 添加到classdefs),但是一旦我进行了这些更改,我得到:

a = Object3
a = 
  Object3

  Properties:
    property3: 300
  Methods

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

于 2013-01-18T16:13:43.070 回答