2011-11-21 105 views
0

假设我有下面的类: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

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

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

1

不可能让=运算符超载。

但是(你可能已经意识到)没有理由不能像你所做的那样实施你的assign方法,然后打电话n = assign(m)