您当前的位置: 首页 >  c++

我什么都布吉岛

暂无认证

  • 7浏览

    0关注

    292博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C++隐式类型转换

我什么都布吉岛 发布时间:2019-08-18 22:03:57 ,浏览量:7

一、什么是隐式转换?

隐式转换是编译器完成的,帮助程序继续完成任务的一个手段。

二、怎么使用隐式转换?

编译器自动完成转换,需要特别注意转换的效果是否符合预期。

三、什么时候发生隐式转换
  • 条件语句中,非bool转换成boolif(998)->if(true)
  • 初始化语句中,初始值转换成变量类型 int pi=3.14->int pi=3
  • 赋值语句中,右侧对象转换成左侧对象,double pi;pi=3->double pi=3.000000000000000
  • 关系、算术运算符类型不一样,都转换成同一类型。int + double + double->double+double+double
  • 函数调用时,实参转换成形参类型。
  • 构造函数仅有一个参数且没有被声明为explicit的函数,出现参数不匹配时进行的一步转换
四、分类 4.1 算术类型隐式转换

对象的类型定义了对象所能包含的数据和参与的运算,一种运算能够被大多数对象支持靠的就是转换,将操作数两边的转成同一类型再进行运算。如:

double+int->double+double

一个重要规则就是:运算符对象将会转换成两者中最宽的类型。

4.2 初始化隐式转换

初始化时,初始值向声明的变量类型转换。

4.3 其他类型隐式转换
  • 数组转为指针。
  • 指针的转换。整数0(NULL)或nullptr转换成任意指针;非常量指针转换成void *’;任意指针转换成const void *,继承关系基类和派生类转换;指针转换成bool(条件语句)
  • 转换成常量。int i;const int &j=i,“虽然你不是常量,但是我可以把你看成是常量”。
关注
打赏
1658157489
查看更多评论
立即登录/注册

微信扫码登录

0.0360s