我想知道像这样的匿名对象回收内存的生命周期/时刻是什么:
type Cell_Type is abstract tagged limited record
Where : Coordinates_Array; -- 2D array
Contents : access String;
end CELl_TYPE;
Cell_type也是通过分配器创建的。 对于命名访问类型,我知道规则(或者这样认为,如果我错了,请纠正我),即当类型(非子类型)的定义范围结束时回收池。但是匿名访问对象呢? 规则说: 用于匿名访问类型的分配器的存储池应确定如下: 25.1 / 2:[共同扩展,我得到了那个]
25.2 / 2:对于其他访问判别式和访问参数,应在分配器点创建存储池,并在分配的对象变得不可访问时回收; [我觉得这里不重要......我的情况似乎不是一个访问判别式,即使语法看起来很相似]
25.3 / 3 [访问返回功能,无所谓]
25.4 / 2:否则,应在详细描述匿名访问类型的位置创建默认存储池;这样的存储池不需要支持单个对象的重新分配。
那么? 何时取消分配“内容”?
答:在节目结束时?
或者B:当“cell_type”类型超出范围时?对于库级别的定义,这将意味着在库的实例化范围的最后......对于我的情况,这意味着A。