2011-03-06 79 views
6

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

回答

9

它们根本没有关系。

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

Scala的特性实际上更像C++的多继承(尽管它们在细节上有所不同)。我实际上是相当失望,C++的多重继承的版本有正式名称“多继承”(排除所有其他变化),因为任何解释斯卡拉的特征的第一句话应该是“特质是一个形式的多重继承......“

+3

[[A:Manifest]]符号被称为”上下文绑定“ – 2011-03-06 19:22:42

+0

@Kevin Wright:谢谢 – 2011-03-06 19:40:29

+0

有趣。你知道他们为什么将这个概念特征命名为scala吗? – 2011-03-07 07:38:14

相关问题