首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c++中的变体、存在多态性

c++中的变体、存在多态性
EN

Stack Overflow用户
提问于 2012-03-23 05:56:55
回答 1查看 653关注 0票数 1

我正在进行关于类型系统的研究。在这项工作中,我将研究变体、结构子类型、通用多态性和存在多态性在流行语言中的用法。功能语言,如heskell,ocaml,提供了这样的功能。但我想知道像C++这样的流行语言是否提供了上述功能。这意味着C++是如何实现的

  1. variants
  2. structural subtyping
  3. universal polymorphism
  4. existential多态性.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-23 07:47:42

  1. 联合可以被看作是一种基本的变体形式,但在现实中,它们更像是一种覆盖内存(且不安全)的原始机制。
  2. 在C++中没有结构类型,更不用说子类型了。所有类型都是nominal.
  3. Templates,与通用多态性有一些表面上的相似之处,但实际上是完全不同的。本质上,它们是美化的宏,很少或没有类型检查(就像宏一样,检查和代码生成都是在expansion).
  4. There中没有存在类型之后进行的( C++中有一种有限的形式,即通配符)。

这些特性中的一些可以在一定程度上使用子类型来模拟,但这仍然远远没有那么有表现力(或者说很方便)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9834753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档