Ada 中的标记类型是什么?

目前正在学习 Ada 并真正享受它,有一个问题困扰着我:什么是tagged类型?根据 John Barnes 的 Programming in Ada 2012,它表示实例化的对象在运行时带有标签。

我在 C++ 或 CI 中从未听说过这样的事情,所以我有点迷茫。它是什么?我什么时候需要它(显然是为了拥有方法和继承?)?

回答

它只是一个类。这是 Ada 中声明类层次结构根的一种方式。另一种方法是使用接口。

目前,这也是获取类型点符号的方法(但这将在 Ada 2022 中推广)。

见https://learn.adacore.com/courses/Ada_For_The_CPP_Java_Developer/chapters/08_Classes_and_Object_Oriented_Programming.html

所以你很少直接操作标签,就像 vtables 在幕后提供调度一样,但你不需要在 C++ 中考虑它们。

与这些语言的一个显着区别是,T'Class它们可用于引用整个派生类型系列,并且必须显式使用它来实现动态调度。


以上是Ada 中的标记类型是什么?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>