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();
    }
      





  • 相关阅读:
    java&nbsp;split
    百度知道
    2014年10月27日
    2014年10月27日
    mybatis批量update,返回行数为-1
    mybatis批量插入:oracle和mysql的区别
    oracle数据库,mybatis批量insert,缺失values字段
    java后台接收json数据,报错com.alibaba.fastjson.JSONObject cannot be cast to xxx
    C++——运算符重载(上)
    C++——友元
  • 原文地址:https://www.cnblogs.com/ZhangJinkun/p/4531447.html
Copyright © 2011-2022 走看看