zoukankan      html  css  js  c++  java
  • static_cast,const_cast,reinterpret_cast,dynamic_cast详解

    static_cast,const_cast,reinterpret_cast,dynamic_cast详解
    #include<iostream>

    //c++的数据类型转换:static_cast<需要转换的数据类型>(要转换的数据),
    //用于一般的数据类型转换
    void main1(){
            int n = static_cast<int >(78.98);
            int* p = static_cast<int *>(malloc(100));
            std::cin.get();
    }

    //const_cast:强制去掉const属性
    void main2(){
            int num[3] = { 12, 2, 3 };
            const int *p1 = num;
            //*p1 = 23;  wrong
            int *pnew = const_cast<int *>(p1);//去掉const属性
            *pnew = 46; //correct
            std::cin.get();
    }

    //reinterpret_cast:在地址和指针之间转换指针类型
    void main3(){
            //类型决定了数据的解析方式,以及内存占多大
            float f1 = 234.423;
            int num = 3;
            char *p = reinterpret_cast<char *>(&num);
            for ( int i = 0; i < 4; i++)
            {
                  std::cout << p[i] << std::endl;
            }
            std::cin.get();
    }

    //dynamic_cast:类的指针之间的转换
    void main(){
            std::cin.get();
    }
      





  • 相关阅读:
    订单超时30分钟自动取消
    获取网络时间
    aspose.words通过域导出word文件
    Excel导入时,解析日期类型单元格的办法。
    ALTER TABLE 报1062
    mysql快速生成测试数据
    GP 源码编译安装
    Kafka 集群群起/关闭脚本
    Zookeeper 常用命令
    OGG 同步无主键表且目标表多一个隐藏字段
  • 原文地址:https://www.cnblogs.com/ZhangJinkun/p/4531447.html
Copyright © 2011-2022 走看看