MATLAB - 重载赋值运算符

时间:2011-11-21 22:01:12

标签: oop matlab

假设我有以下课程:

classdef myClass < handle
    properties
        A = [10 20 30 40]
    end
end 

然后假设我有以下电话:

>> m = myClass;
>> n = m;
当然,

n将是与m相同的对象的句柄。有没有办法重载赋值运算符?特别是,我想知道我是否可以使用以下方法:

function val = assign(obj)
    val = obj.A;
end

因此n = m的行为与n = m.A相同。

2 个答案:

答案 0 :(得分:2)

我认为你不能:想象一下如何将对象本身分配给变量,它将是完全相同的语法。而且由于你不能让程序可执行的含糊不清,所以它不可能是有用的。

如果你只是想要它作为语法糖,学会忍受这些限制。否则你可能想再看一下你的设计。

答案 1 :(得分:1)

不能让=运算符超载来执行此操作。

但是(正如您可能已经意识到的那样)没有理由不能像您一样实施assign方法,然后拨打n = assign(m)