[转]C++隐式转换各种发生情况

  • C++隐式转换的发生主要是在以下四种情况中,分别为:在混合类型的算术表达式中;用一种类型的表达式赋值;用一个表达式传递给一个函数调用;从一个函数返回一个表达式等。
  •  

    C++编程语言中的类型转换分为两种,一种为隐式转换,而另一种则为显式转换。我们在这篇文章中将会为大家详细介绍一下其中的C++隐式转换的各种发生情况,希望能帮助大家从中获得一些帮助。

    C++隐式转换发生在四种情况下

    * 在混合类型的算术表达式中

       
       
    1. int ival = 3;  
    2. double dval = 3.1415  
    3. ival + dval; //ival 被提升为double 类型:3.0 

    * 用一种类型的表达式赋值

       
       
    1. int *pi = NULL; // NULL(0)被转换成了int* 类型的空指针值 

    * 用一个表达式传递给一个函数调用

       
       
    1. extern double sqrt(double);  
    2. sqrt(2); //2被提升为double类型: 2.0 

    * 从一个函数返回一个表达式

       
       
    1. double difference(int ival1, int ival2)  
    2. {  
    3. return ival1 - ival2; //返回值被提升为double 类型.  

    C++内建类型(char,int,short,double etc.)对像之间默认含有隐式转换

    C++用户定义类对象之间可以含有C++隐式转换.

       
       
    1. void dosomething(A aObject);  
    2. class A {  
    3. public:  
    4. A(int x = 0);  
    5. }  
    6. dosomething(20); // Ok 隐式转换 

    以上就是对C++隐式转换的相关介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值