【发布时间】:2013-01-18 15:14:47
【问题描述】:
我刚开始在 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
【问题讨论】:
-
我想,如果你提供一个例子会更清楚。另外,如果您不必这样做,请不要参与 matlab 中的 OOP,坚持使用它们更实用、更传统的模式。
-
感谢您的提示。我宁愿使用 OOP,因为目前我的函数实现中有 10 多个全局变量,并且不将它们定义为全局变量,我应该在许多函数调用中包含许多这些常量,这似乎有点令人生畏并且也不清楚。我想最好将结构与函数实现一起使用,但我仍然认为恒定访问限制是 OOP 相对于函数的优势。但是让我们看看,当我运行 OOP 时,它如何处理对象之间传递的常量。