Traits是Scala和C ++中使用的概念(尽管在C ++中它更像是一种成语而不是集成到语言中的概念)。对我而言,这些概念是如何相关的并不明显。 Scala和C ++特征之间有什么关系?
答案 0 :(得分:9)
他们根本没有关系。
在C ++中,traits类是一个辅助对象,它告诉你一些你无法从类型名称本身获得的类型。 C ++特性实际上更类似于Scala的def foo[A:Manifest]
符号(我不知道正确的名称。)
Scala的特性实际上更像是C ++的多重继承(虽然它们的细节不同)。我实际上非常感到失望的是,C ++的多重继承版本具有官方名称“多重继承”(排除所有其他变体),因为对Scala特征的任何解释的第一句都应该是“特质是一种多重继承的形式......”