关注公众号

关注公众号

手机扫码查看

手机查看

喜欢作者

打赏方式

微信支付微信支付
支付宝支付支付宝支付
×

C++之类型转换函数(一)

2020.9.28

一、转换构造函数的学习:

1、回忆数据类型转换:

在平时写代码的时候,最怕的就是那种隐式数据类型转换了,一不小心,软件就bug不断;而显示数据类型(一般是程序自己去强制类型转换,这个是我们能够明显的识别和掌控的)。为此我们这里总结了一副隐式类型转换的图:

下面我们来几个隐式转换的例子:

代码版本一:

#include <iostream>
#include <string>
int main()

    short s ='a';
    unsigned int ui = 100;
    int i = -200;
    double d = i;
    std::cout<<"d =" << d <<std::endl;
    std::cout<<"ui= "<<ui<<std::endl;
    if((ui+i)>0)
    {
         std::cout<<"Postive"<<std::endl;
    }
    else
    {
       std::cout<<"Negative"<<std::endl;
    }
    return 0;

输出结果:

root@txp-virtual-machine:/home/txp# ./a.out
d =-200
ui= 100
Postive

注解:这里我们明显发现(-200+100)还是大于0,这显然不符合正常人的思维了;所以我们仔细分析一下,发现这里肯定是进行了隐式转换了,为此我们再加一条语句看看(ui+i)的值到底是多少:

代码版本二:

#include <iostream>
#include <string>
int main()

    short s ='a';
    unsigned int ui = 100;
    int i = -200;
    double d = i;
    std::cout<<"d =" << d <<std::endl;
    std::cout<<"ui= "<<ui<<std::endl;
    if((ui+i)>0)
    {
       std::cout<<"(ui+i) = "<<ui+i<<std::endl;
       std::cout<<"Postive"<<std::endl;
    }
    else
    {
       std::cout<<"Negative"<<std::endl;
    }
    return 0;


推荐
热点排行
一周推荐
关闭