所谓 default 构造函数是一个可被调用而不带任何实参者。
这样的构造函数要不没有参数,要不就是每个参数都有缺省值。
上述的classes B和 C的构造函数都被声明为explicit,这可阻止它们被用来执行隐式类型转换(implicit type conversions),但它们仍可被用来进行显式类型转换(explicit type conversions)
被声明为 explicit的构造函数通常比其non-explici兄弟更受欢迎,因为它们禁止编译器执行非预期(往往也不被期望)的类型转换。除非我有一个好理由允许构造函数被用于隐式类型转换,否则我会把它声明为 explicit。
领取专属 10元无门槛券
私享最新 技术干货