码迷,mamicode.com
首页 > 其他好文 > 详细

static_cast,const_cast,reinterpret_cast,dynamic_cast详解

时间:2015-05-26 20:53:43      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

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





static_cast,const_cast,reinterpret_cast,dynamic_cast详解

标签:

原文地址:http://www.cnblogs.com/ZhangJinkun/p/4531447.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!