显示类型转换
来源:互联网 发布:淘宝 广告 编辑:程序博客网 时间:2024/05/21 15:44
显示类型转换
1.静态类型转换
•static_cast<目标类型> (源类型对象)
–编译器对源类型和目标类型做相容性检查,检查不通过报错
–源类型和目标类型只要在一个方向上可以做隐式类型转换,那么在两个方向上就都可以做静态类型转换
–如果将目标类型从源类型的类型转换构造函数,或者源类型向目标类型的类型转换运算符函数,被声明为explicit,
那么从源类型到目标类型的类型转换就必须显式完成,静态类型转换可用于这样的场合
2.动态类型转换
•dynamic_cast<目标类型> (源类型对象)
–编译器首先检查源类型和目标类型是否同为指针或引用且其类型之间存在具有多态性的继承关系,不存在直接报错
–编译器生成一段指令,运行时执行该指令,检查源和目标的类型是否一致,不一致通过返回空指针或抛出异常报错
–常被用于具有多态继承关系的父子类对象的指针或引用之间的转换
3.去常类型转换
•const_cast<目标类型> (源类型对象)
–编译器检查源类型和目标类型是否同为指针或引用,且其目标类型之间除常属性以外必须完全相同,否则直接报错
–去除指针或引用上的const属性
int const volatile x = 100; int const* p = &x; *p = 200; // 错误 int* q = const_cast<int*> (p); *q = 200;
4.重解释类型转换
•reinterpret_cast<目标类型> (源类型对象)
–编译器检查源类型和目标类型是否同为指针或引用,或者一个是指针一个是整型,否则直接报错
–在任意类型的指针或引用之间转换,意味着可以将同一个对象视作不同的类型,并以不同的方式访问或处理之
–无论何种类型的指针,从本质上讲都与整数无异,即地址空间中一个特定字节的顺序号
阅读全文
0 0
- C++显示类型转换
- c++显示类型转换
- C++显示类型转换
- C++显示类型转换
- C++显示类型转换
- c++显示类型转换
- c++显示类型转换
- C++【显示类型转换】
- C++显示类型转换
- 显示类型转换
- C++显示类型转换
- C++中显示类型转换
- JavaScript的显示类型转换
- Razor 页面显示类型转换
- C#的类型转换:显示类型转换、强制类型转换、不兼容类型转换
- C#中隐式类型转换和显示类型转换
- C#中隐式类型转换和显示类型转换 .
- java中显示类型转换和隐式类型转换
- spring MVC配置详解
- SSS1629|虚拟7.1软件|调试方法|完美替代CM108|台湾鑫创|USB麦克风方案
- mvn assembly:assembly出现错误信息解决方案
- Oracle sys用户登录权限不足insufficient privileges
- 激活win10系统
- 显示类型转换
- Linux C/C++ 多线程死锁的gdb调试方法
- hdu 1695 GCD【容斥+欧拉】
- PHP的输出:echo 和 print 语句
- 如何使用阿里云虚拟主机搭建博客(二)搭建篇
- C#之实现Scoket心跳机制
- 1775_采药
- 个人小程序智能对话查询工具完整代码分享--快递、身份证、词典、诗词等
- Keras学习(1)-识别手写体的例子