【问题标题】:Derived datatypes vs Abstract Datatypes派生数据类型与抽象数据类型
【发布时间】:2023-04-11 10:41:01
【问题描述】:

在阅读c++时,我遇到了派生数据类型,例如arraystructunions等。但是我们也研究了stacksqueuesbinary search tree、@ 987654328@ 为ADT

我想知道,这些 ADT 也是派生数据类型吗?

【问题讨论】:

  • 嗯,您从哪里了解到数组、结构等是派生类型的?当时的背景是什么? “派生”一词在书籍/网站中的含义是什么?
  • ADT 不是 C++ 语言结构。它更像是对数据类型应该如何表现的规范(更像是模型)。

标签: c++ abstract-data-type


【解决方案1】:

数组、结构、联合或指针是 C++ 从 C 继承的派生类型。它们允许从基本类型(intlongfloat...)创建新的数据类型。

在 C++ 中,您还拥有标准模板库 (STL),它们是抽象类型。它们与派生类型的不同之处在于它们是使用templates 的类。

因此,回答您的问题,抽象类型比派生类型更强大,因为模板机制具有更丰富的语义。例如,在 C++ 中,你可以有一个抽象结构:

template <typename T> 
struct mytype { 
    T value;
};

【讨论】:

  • 这回答了我的问题。谢谢,伙计
猜你喜欢
  • 2019-03-12
  • 1970-01-01
  • 1970-01-01
  • 2021-08-04
  • 2012-02-11
  • 2011-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多