当将此类的对象分配给变量时,是否可以使Matlab调用类copy
的{{1}}方法(TMyClass
calss)。换句话说,我希望我的handle
类在复制时表现为值类:
handle
据我所知,没有办法在Matlab中覆盖obj = TMyClass(); %// has method "copy", which returns a deep copy of the object
%// Now, if I write this ...
obj_copy = obj;
%// ... I want Matlab to do in fact this:
obj_copy = obj.copy; %//
运算符。还有其他解决办法吗?
谢谢!
答案 0 :(得分:0)
如果您具有值类,那么obj_copy = obj
将创建对象的新副本。对于句柄类,您始终必须自己调用复制函数。
我已经遇到了同样的问题,建议您按照您的建议使用copy
方法。
根据您的设计以及您要使用的设计,您可能还会发疯并使用流畅的界面。在我的情况下,我有一个对象来交换数据,该数据以这种方式返回过滤后的自身副本:
obj = DataObject()
f1 = obj.getByType('pressure') % f1 ~= obj
f2 = f1.getByTemperature(@(x) x < 10) % using an anonymous function for filtering, also f2 ~= f1