ada - Ada 中的标记类型是什么?
问题描述
目前正在学习 Ada 并真正享受其中,有一件事情困扰着我:什么是tagged
类型?根据 John Barnes 在 Ada 2012 中的编程,它表明实例化的对象在运行时带有标签。
我在 C++ 或 CI 中从未听说过这样的事情,所以我有点迷茫。它是什么?我什么时候需要它(显然是为了拥有方法和继承?)?
解决方案
它只是一个类。这是 Ada 中声明类层次结构根的一种方式。另一种方法是使用接口。
目前,它也是获取类型的点符号的方法(但这将在 Ada 2022 中推广)。
所以你很少直接操作标签,就像 vtables 在幕后提供调度一样,但你不需要在 C++ 中考虑它们。
与这些语言的一个显着区别是T'Class
可以用来引用整个派生类型家族,并且必须显式使用它来实现动态调度。
推荐阅读
- c# - 从soap响应中删除CDATA标签
- python - 在 Pyside2 for Python 上显示应用程序后,我们如何刷新事件?
- c# - 尝试使用多线程将大型数据集填充到组合框中时,Windows 窗体冻结?
- android - 如果手动更改日历时间,如何在 Android 中获取当前时间?
- javascript - 如何将 Id 赋予 @using (Ajax.BeginForm("Index", "Customer", FormMethod.Post, new AjaxOptions(){})){....}
- swift - 在 Cocoapod 之后,Swift 中没有这样的模块错误
- python - 通过几个函数后的参数变化 - Python
- html - 想要在视差区域上使文本 div 透明
- python - 如何将 django 模型导出到按特定列排序的 pandas 数据框
- azure - 构建 ActorService 时 DotNet 命令退出并出现错误代码