在C++11之前,具有单个形参的构造函数被视为转换构造函数(因为它接受另一种类型的值并由此创建该类型的新实例)。在C++11中,没有explicit说明符的构造函数都被视为转换构造函数,这样的构造函数定义了从参数的类型到类的类型的隐式转换。类还可以定义转换操作符,将类的类型转换为另一种指定的类型。所有这些在某些情况下都是有用的,但偶尔也会产生问题。在本节中,我们将学习如何使用explicit构造函数和转换操作符。