c++中类型转换
时间:2010-04-22 来源:c08007
隐式转换
可用单个实参调用的构造函数定义了从形参类型到该类类型的隐式转换。 class A { A(int a); } void f(A &v); f(20);//由于隐式转换,相当于f(A(20)) 若在构造函数前加explicit,则会禁止隐式转换 class A { explicit A(int a); } void f(A &v); f(20);//错误,隐式转换被抑制 建议单参数构造函数应禁止隐式转换。
类类型->其他类型 类型转换函数 形式: operator type(),返回type类型数据 class A { explicit A(int a); operator int(); } 注意:类类型转换后不可再跟另一个类类型转换
显示转换 dynamic_cast static_cast const_cast reinterpret_cast
- 算术转换,最简单的是类型提升
- 标准转换
- 指针转换 int ia[10]; int *p = ia;
- 其他类型转换为Bool型
- bool型转为整形
- 枚举类型的转换
- 标准库定义的类型
可用单个实参调用的构造函数定义了从形参类型到该类类型的隐式转换。 class A { A(int a); } void f(A &v); f(20);//由于隐式转换,相当于f(A(20)) 若在构造函数前加explicit,则会禁止隐式转换 class A { explicit A(int a); } void f(A &v); f(20);//错误,隐式转换被抑制 建议单参数构造函数应禁止隐式转换。
类类型->其他类型 类型转换函数 形式: operator type(),返回type类型数据 class A { explicit A(int a); operator int(); } 注意:类类型转换后不可再跟另一个类类型转换
显示转换 dynamic_cast static_cast const_cast reinterpret_cast
相关阅读 更多 +