Scala和C ++特征之间的关系是什么?

时间:2011-03-06 17:29:29

标签: c++ scala

Traits是Scala和C ++中使用的概念(尽管在C ++中它更像是一种成语而不是集成到语言中的概念)。对我而言,这些概念是如何相关的并不明显。 Scala和C ++特征之间有什么关系?

1 个答案:

答案 0 :(得分:9)

他们根本没有关系。

在C ++中,traits类是一个辅助对象,它告诉你一些你无法从类型名称本身获得的类型。 C ++特性实际上更类似于Scala的def foo[A:Manifest]符号(我不知道正确的名称。)

Scala的特性实际上更像是C ++的多重继承(虽然它们的细节不同)。我实际上非常感到失望的是,C ++的多重继承版本具有官方名称“多重继承”(排除所有其他变体),因为对Scala特征的任何解释的第一句都应该是“特质是一种多重继承的形式......”