C++四种强制转换 static_cast , dynamic_cast , const_cast , reinterpret_cast
来源:互联网 发布:东莞百度seo排名优化 编辑:程序博客网 时间:2024/05/22 05:16
C++的四种强制类型转换,所以C++不是类型安全的。分别为:static_cast , dynamic_cast , const_cast , reinterpret_cast
四种转换的区别:
static_cast:可以实现C++中内置基本数据类型之间的相互转换。
const_cast: const_cast操作不能在不同的种类间转换。相反,它仅仅把一个它作用的表达式转换成常量。它可以使一个本来不是const类型的数据转换成const类型的,或者把const属性去掉。
reinterpret_cast: 有着和C风格的强制转换同样的能力。它可以转化任何内置的数据类型为其他任何的数据类型,也可以转化任何指针类型为其他的类型。它甚至可以转化内置的数据类型为指针,无须考虑类型安全或者常量的情形。不到万不得已绝对不用。
dynamic_cast:
(1)其他三种都是编译时完成的,dynamic_cast是运行时处理的,运行时要进行类型检查。
(2)不能用于内置的基本数据类型的强制转换。
(3)dynamic_cast转换如果成功的话返回的是指向类的指针或引用,转换失败的话则会返回NULL。
(4)使用dynamic_cast进行转换的,基类中一定要有虚函数,否则编译不通过。
牛客 题库
在C++,下列哪一个可以做为对象继承之间的转换()
static_cast
reinterpret_cast
dynamic_cast
const_cast
将一个基类对象指针(或引用)cast到继承类指针,dynamic_cast会根据基类指针是否真正指向继承类指针来做相应处理, 即会作一定的判断。
对指针进行dynamic_cast,失败返回null,成功返回正常cast后的对象指针;
对引用进行dynamic_cast,失败抛出一个异常,成功返回正常cast后的对象引用。
- 四种强制类型转换 const_cast,static_cast,dynamic_cast,reinterpret_cast
- C++四种强制转换 static_cast , dynamic_cast , const_cast , reinterpret_cast
- C++ 四种类型强制转换 static_cast、const_cast、reinterpret_cast、dynamic_cast
- 【C++】强制类型转换(static_cast,reinterpret_cast,const_cast,dynamic_cast,explicit)
- [C++] 强制类型转换static_cast、dynamic_cast、reinterpret_cast和const_cast
- c++dynamic_cast、const_cast 、static_cast、reinterpret_cast强制类型转换
- 强制转换函数(const_cast,reinterpret_cast,static_cast,dynamic_cast)
- 强制转换函数(const_cast,reinterpret_cast,static_cast,dynamic_cast)
- C++四种强制类型转换符功能以及用法总结(dynamic_cast,const_cast,static_cast,reinterpret_cast)
- c++四种转换 static_cast,const_cast,dynamic_cast,reinterpret_cast
- C++中的四种转换:static_cast、const_cast、reinterpret_cast、dynamic_cast
- [转]C++四类主要强制转换(const_cast,reinterpret_cast,static_cast,dynamic_cast)
- 强制类型转换 static_cast、dynamic_cast、reinterpret_cast、和const_cast
- c++ 强制转换类型运算符 const_cast reinterpret_cast static_cast dynamic_cast
- 标准强制类型转换:static_cast、dynamic_cast、reinterpret_cast和const_cast
- C++中的所有强制转换函数(const_cast,reinterpret_cast,static_cast,dynamic_cast)
- c++强制类型转换:dynamic_cast、const_cast 、static_cast、reinterpret_cast
- c++强制类型转换:dynamic_cast、const_cast 、static_cast、reinterpret_cast
- vb.net 教程 20-3 控制Ie浏览器 2
- PAT乙级1063. 计算谱半径(20)
- New Year and North Pole
- mini-MBA学习总结二:新媒体营销
- Ubuntu 下eclipse 按alt+/没有起作用解决办法
- C++四种强制转换 static_cast , dynamic_cast , const_cast , reinterpret_cast
- 模板大集结!
- 什么是事务
- Mysql命令行执行sql文件,解决sqlyog或navicat执行sql文件乱码的问题
- 【小玩意】扫雷游戏
- REST简介
- Canvas的基本使用
- ByteArrayOutputStream源码分析
- 51Nod-1085 背包问题