小编Har*_*aun的帖子

如何在 Ada 中对抽象类进行 unchecked_deallocation?

我非常了解 Ada,但总体而言,我仍然在为面向对象而苦苦挣扎,尤其是在 Ada 中。因此,很可能我只是遗漏了一点。

考虑像树这样的数据结构。存储在树中的对象是抽象类型的。我想完全控制解除分配(使用 Ada.Finalization),因为我正在使用安全指针实现数据结构。这意味着在释放树时,子树在仍然存在引用时不能被释放。

在这种情况下,需要释放数据结构中引用的具体对象。在我看来,这需要一个抽象的 unchecked_deallocation。有没有一种简单的方法可以做到这一点?我还考虑声明一个抽象的Free子例程,该子例程必须由抽象类型的实例实现。不成功。

In 还没有检查标准库以获得合适的数据结构。目前我只是对问题本身感到好奇。

abstract-class ada dynamic-memory-allocation

4
推荐指数
1
解决办法
194
查看次数