强烈推荐有英语能力的c++初学者,从这个项目开始cpp学习Modern-CPP-Programming
我当年要是从这个项目开始应该会节省大量的时间.
啊隐式类型转换,多么烦人的东西,假如有一天可以禁用隐式类型转换,c++一定会多一些美.
隐式类型转换的缺点
- 纵容了不负责任的程序员.在明知可能超范围的时候,仍然使用可能超范围的类型,然后在比较边界的条件输入的时候问题出现了.
- 出了问题也不提示.debug困难(其实也还好)
- 没有强类型的美.强类型就一强到底,在程序员每次转换类型的时候,需要程序员明确知道自己在干嘛,这样后续修改也比较方便(类似丰富采用auto的好处)
隐式类型转换什么时候发生?
按顺序在任何的operator之前发生(±*/%)
隐式类型转换的规则
-
浮点晋升
整型类型遇到浮点类型结果转换成浮点类型
-
小整型向int转化
比整型的范围小的数在遇到比整型范围小的数时结果转换成整型
![](https://img-blog.csdnimg.cn/ea74a40b717a428aa6e94e5739265300.png) -
范围扩大
小范围的数和大范围的数计算结果变为大范围的数.
比如short 和int
-
去符号
有符号数和无符号数计算时,结果是无符号数