• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > static_cast,dynamic_cast,reinterpret_cast,const_cast的区别及用法详解

static_cast,dynamic_cast,reinterpret_cast,const_cast的区别及用法详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了static_cast,dynamic_cast,reinterpret_cast,const_cast的区别及用法详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

1.static_cast对类的指针只能转换有继承关系的类。对普通的指针来说只能在void*和其他指针之间转换。它还可转换简单的类型,比如int到char等。不能提供数字到指针的转换。不能提供不同类型指针之间的转换比如int*到char*。

2.dynamic_cast提供安全的转换如果两个指针不存在继承关系转换会失败返回空指针,如果你提供一个错误的指针那样会发生内存访问异常,因为它会去比较两个类型的虚函数表。虚函数表的指针一般放在对象指针最开始的四字节中,你去访问一个错误的地址这样肯定会发生异常。

3.reinterpret_cast提供数字到指针间的转换比如void*到int。提供不同类型指针的强制转换比如int*到char*。不提供int到char的转换。但是处理类指针转换的时候不能用它,它不会自动的调整指针。

4.const_cast把一个const指针转为非const,最好不要用这个转换。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++中的类型转换static_cast、dynamic_cast、const_cast和reinterpret_cast总结
  • static_cast,dynamic_cast,reinterpret_cast,const_cast的区别及用法详解

相关文章

  • 2017-05-28深入理解Java事务的原理与应用
  • 2017-05-28详解C语言的结构体中成员变量偏移问题
  • 2017-05-28c++ STL容器总结之:vertor与list的应用
  • 2017-05-28C++实现矩阵原地转置算法
  • 2017-05-28C语言设置和取得socket状态的相关函数用法
  • 2017-05-28linux中查询dns示例
  • 2017-05-28C++函数参数取默认值的深入详解
  • 2017-05-28C++实现简单遗传算法
  • 2017-05-28C++中四种对象生存期和作用域以及static的用法总结分析
  • 2017-05-28C++实现合并排序的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 详解C++中StringBuilder类的实现及其性能优化
    • 解析C++中派生的概念以及派生类成员的访问属性
    • Linux vmstat命令实战详细解析
    • POJ2151 Check the difficulty of problems 概率DP
    • C语言中用于修改文件的存取时间的函数使用
    • C++中单链表的建立与基本操作
    • 原码, 反码与补码基础知识详细介绍
    • C语言中const,volatile,restrict的用法总结
    • C语言中计算正弦的相关函数总结
    • 使用C++绘制GDI位图的基本编写实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有