ada - Ada 中的标记类型是什么?

标签 ada

目前正在学习 Ada 并真正享受它,有一件事情困扰着我:什么是 tagged类型?根据 John Barnes 的 Programming in Ada 2012,它表示实例化的对象在运行时带有标签。
我想我从来没有在 C++ 或 C 中听说过这样的事情,所以我有点迷茫。它是什么?我什么时候需要它(显然是为了拥有方法和继承?)?

最佳答案

它只是一个类。这是 Ada 中声明类层次结构根的一种方式。另一种方法是使用接口(interface)。
目前,这也是获取类型点符号的方法(但这将在 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 - Ada 中的标记类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68994118/

相关文章:

logging - 除了 Alog (http ://www. nongnu.org/alog/) 之外,是否还有 Ada 的日志记录框架或众所周知的设计模式?

windows - 如何以 64 位 GNAT GPS 的新方式与 Windows 系统调用交互?

matrix - 转置矩阵ada

tree - 在 Ada 中构建二叉表达式树

parsing - ["03C0"] 如何匹配附件 P 中 <Ada 引用手册> 的语法?

gtk - 如何将 GTK+ 与 ada 结合使用

macos - 无法编译和运行简单的 Ada 应用程序

generics - Ada 含糊不清的表达与 Get

c - 在 C-ADA 绑定(bind)应用程序中传递字符串

string - Ada 用 Null 填充常量字符串