2011-11-21 76 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)