我在matlab面向对象编程方面做了一些工作。我有一个属性类。如果它们是NaN,则属性被计算,否则该属性被返回。最大递归限制 - 属性值设置回NaN
所以我有本节:
properties
some_property = NaN;
end
和属性被计算如下:
function some_property = get_some_property(obj)
if(isnan(obj.some_property))
% do some expensive computation
obj.some_property = ...;
end
some_property = obj.some_property;
甲get_some_property方法可以由另一个get_some_property方法中。问题在于方法调用属性被重新设置为NaN。这会导致错误:
最大递归限制...
任何想法?谢谢。
您的类是引用类型还是值类型?如果引用,那么你将继承'handle'。 – Steve 2012-07-10 16:57:55
不确定你指的是什么。你问是否ny类派生自
cs0815
2012-07-10 17:14:39
是的,如果不是,请参阅下面的sfstewman答案。 – Steve 2012-07-10 19:03:54