我开始在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
答案 0 :(得分:2)
只需删除星号,我认为你有你需要的东西。
您的代码中还有其他一些语法错误(将Immutable
替换为SetAccess = immutable
,并将end
添加到classdef
s,但是一旦我做了那些改变,我得到了:
a = Object3
a =
Object3
Properties:
property3: 300
Methods
通常,要从另一个类引用Constant
属性,只需在属性前加上类名(如果类在包中,则可能包名称)。