我想知道为这样的匿名对象回收内存的生命周期/时刻是什么:

type Cell_Type is abstract tagged limited record
   Where : Coordinates_Array; -- 2D array
   Contents : access String;
end CELl_TYPE;

Cell_type也是通过分配器创建的 . 对于命名访问类型,我知道规则(或者这样认为,如果我错了,请纠正我),即当类型(非子类型)的定义范围结束时回收池 . 但是匿名访问对象呢?规则说明:用于匿名访问类型的分配器的存储池应确定如下:25.1 / 2:[coextensions,我得到了那个]

25.2 / 2:对于其他访问判别式和访问参数,应在分配器点创建存储池,并在分配的对象变得不可访问时回收; [我觉得这里不重要......我的情况似乎不是一个访问判别式,即使语法看起来相似]

25.3 / 3 [访问返回功能,无所谓]

25.4 / 2:否则,应在详细描述匿名访问类型的位置创建默认存储池;这样的存储池不需要支持单个对象的释放 .

那么?什么时候“内容”被解除分配?

  • 答:在节目结束时?

  • 或B:当“cell_type”类型超出范围时?对于库级别定义而言,这意味着在库的实例化范围的最后......对于我的情况,这意味着A .