explicit
与类型运算符
背景
类类型转换
类型转换分类
- 隐式类型转换/系统转换
- 数值类型从低精度到高精度的转换
char
->short
->int
->long
->long long
char
->short
->int
->float
->double
- 具体指针类型(变量指针、函数指针)转换成
void*
T*
->void*
- 数组类型转化成指针类型
T[]
->T*
- 通过单参构造函数转换成对象
char*
->string
- 通过重载类型运算符
- 显式类型转换/强制转换
- 数值类型从高到低
static_cast<>
- 从
void*
转成具体指针类型
reinterpret_cast<>
- 从
const
转非const
const_cast<>
- 从多态基类指针/引用转成子类指针/引用
dynamic_cast<>