博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++中四种显示类型转换总结
阅读量:6863 次
发布时间:2019-06-26

本文共 1006 字,大约阅读时间需要 3 分钟。

#include <iostream>
using 
namespace 
std;
 
/*
 
*四种显示类型转换
 
**/
 
int 
main(){
 
   
/* static_case 类型转换*/
    
double 
a=1.1213;
    
int 
b=
static_cast
<
int
>(a);
    
class 
base{};
    
class 
father:
public 
base{};
    
father f;
    
base ba=
static_cast
<base>(f);
 
    
/*reinterpret_cast类型转换*/
    
//基本类型的指针类型转换
    
double 
c=12.123;
    
double
* pc=&c;
    
int
* pi=
reinterpret_cast
<
int
*>(pc);
    
//不相关的类的指针的类型转换
    
class 
A{};
    
class 
B{};
    
A* pa=
new 
A;
    
B* pb=
reinterpret_cast
<B*>(pa);
    
delete 
pa;
    
//指针转换为整数
    
int 
num=
reinterpret_cast
<
int
>(pc);
 
    
//企图转换非指针类型的
    
//b=reinterpret_cast<int>(a);  这条语句是错误的
    
//企图将const指针转换为void指针
//  const int * pint=0;
//  void* pvoid=reinterpret_cast<void *>(pint);   错误
    
/* const_cast 类型转换*/
    
const 
int
* pint=0;
    
int 
* pint1=
const_cast
<
int 
*>(pint);
    
//基于安全性的考虑,下面的转换是错误的
//  const int nInt=0;
//  int nInt2=const_cast<int>(nInt);
    
int
* pnum=0;
    
const 
int 
* pnum2=
const_cast
<
const 
int
*>(pnum);
    
int 
i=0;
    
//const int i2=const_cast<const int>(i); //不能编译通过
    
const 
int 
i2=(
const 
int
)i;
//隐式转换可以编译通过
     
 
    
return 
0;
}

  具体的总结请参考《C++ STL开发技术导引.pdf 》第1.6小节。

转载地址:http://kbeyl.baihongyu.com/

你可能感兴趣的文章
《JavaScript快速全栈开发》作者Azat Mardanov:现在是拥抱Node技术栈的最佳时机
查看>>
C# 判断字符串是否符合十六进制,八进制,二进制和十进制整数格式的正则表达式...
查看>>
Redis 4.0.X版本reshard出现错误的解决办法
查看>>
RedMonk 语言排行:Kotlin 上升 8 位,TS 快进前 10
查看>>
10个免费好用功能强大的网页动画效果库
查看>>
终于要揭开神秘面纱?Magic Leap将要展示产品
查看>>
大数据小视角3:CarbonData,来自华为的中国力量
查看>>
RxJava2 / RxAndroid2的merge操作合并多个Observable
查看>>
无人机软件供应商DroneDeploy获B轮融资,欲染指机器人平台?
查看>>
【Java实现】栈和队列就是这么简单
查看>>
JDK8新特性之Stream流
查看>>
【新浪上海】上海信息化建设进入新阶段 首席信息官联盟发挥重要作用
查看>>
linux下IPTABLES配置详解
查看>>
无界不连续函数积分MATLAB
查看>>
数据结构与算法 第二次实验报告堆栈队列
查看>>
JHipster生成微服务架构的应用栈(二)- 认证微服务示例
查看>>
ES6新特性详解
查看>>
模拟浏览器发送请求报文
查看>>
Android ShareSDK桥接技术
查看>>
dockerfile常用命令
查看>>