C++ 原则上是一种强类型语言。然而,它确实允许类型之间的一些隐式转换,使其“不像它应该的那么强”-类型化。从历史上看,很多这些隐式转换来自 C——我们都同意这种语言可以使用更少的隐式转换。 C++ 也没有一种真正简单的方法来向类型添加“单位”,并且允许任何类型定义隐式转换为另一个类型。在我们找到问题的解决方案之前,我们需要了解问题是什么,以及为什么会出现问题。