第四十一课 类型转换函数(上) 文章目录 第四十一课 类型转换函数(上)一、隐式转换二、构造函数三、编译器行为四、避免编译器隐式转换行为五、小结 一、隐式转换 标准数据类型之间会进行隐式的类型安全转换 转换规则 char,short->int->unsigned int->long->unsigned long->float->double 二、构造函数 构造函数可以定义不同类型的数据参数 参数满足下列条件时称为转换构造函数 有且仅有一个参数 参数是基本类型 参数是其他类类型 三、编译器行为 编译器会努力让源码编译通过 隐式类型转换 会让程序以意想不到的方式进行工作 也是 bug 的重要来源 四、避免编译器隐式转换行为 工程中通过 explicit 关键字杜绝编译器的转换尝试 转换构造函数被 explicit 修饰时只能进行显示转换 转换方式 static_cast(calue);classname(value);(classname)value; // 不推荐 五、小结 转换构造函数只有一个参数转换构造函数的参数类型时其他类型转换构造函数在类型转换时被调用隐式类型转换时工程中 bug 的重要来源explicit 关键字用于杜绝隐式类型转换