假设我有以下课程:
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
相同。
答案 0 :(得分:2)
我认为你不能:想象一下如何将对象本身分配给变量,它将是完全相同的语法。而且由于你不能让程序可执行的含糊不清,所以它不可能是有用的。
如果你只是想要它作为语法糖,学会忍受这些限制。否则你可能想再看一下你的设计。
答案 1 :(得分:1)
不能让=
运算符超载来执行此操作。
但是(正如您可能已经意识到的那样)没有理由不能像您一样实施assign
方法,然后拨打n = assign(m)
。