C++里,对象类型转化问题是需要严加注意的一个问题,包括隐式转换,强制转化,旧式转化等种类,需要加以总结。本篇文章概括总结类型转化问题,并侧重于类型的隐式转换问题。关于强制转换的详细的内容放在下篇文章中总结。
一。类型相关:如果两个类型可以相互转换,则称这两个类型相关。只用相关类型之间才可能发生隐式类型或显示类型转换。
1.算术类型之间的转换:算术类型指不包括void的内置类型,算术类型之间可以相互转换。
转换规则根据不同的转换条件而不同
2.算术类型和bool类型之间的转换:可将算术对象转换为bool类型,bool对象也可以转换为int型
3.整型和枚举类型:自动将枚举类型的对象或者成员转换为整型
4.指针转换:(1)大部分情况下数组名会自动转换为指向第一个元素的指针(但不完全是这样)
(2)指向任意数据类型的指针都可以转为void*类型(指向const任意类型对象的指针只能都可以转为const void * 而不能转为void *)
(3)整数0可以转换为任意类型指针
(4)指针可以转化为bool类型
5.转为const对象:可以用非const对象或其引用初始化化或赋值给const对象;
可以用非const对象或其引用初始化化const的引用;
可以用非const对象的地址或其非const指针初始化或赋值给指向const对象的指针;
可以用const对象或其引用初始化或赋值给非const对象;&#