C++学习笔记:static_cast和reinterpret_cast
来源:互联网 发布:天谕玉虚男捏脸数据 编辑:程序博客网 时间:2024/06/11 00:31
C++的类型转换
1.类型转换名称和语法
C风格的强制类型转换(TYPE Cast)很简单,不管什么类型的转换统统是:
TYPE b=(TYPE)a
C++风格的类型转化提供了4种类型转换操作符来应对不同场合的应用。
static_cast 静态类型转换,如Int转换成char
reinterpreter_cast 重新解释类型
dynamic_cast 命名上理解是动态类型转换。如子类和父类之间的多态类型转换
const_cast 字面上理解就是去const属性
4种类型转换的格式
TYPE B=static_cast<TYPE>(a)
2.类型转换一般性介绍
1)static_cast<>() 静态类型转换,编译的C++编译器会做类型检查:
基本类型能转换,但是不能转换指针类型
2)若不同类型之间,进行强制类型转换,用reinrepret_cast<>()进行重新解释
3)一般性解释:
C语言 能隐式类型转换的,在C++中可用static_cast<>()进行类型转换,因C++编译器在编译检查一般多能通过。
C语言中不能隐式转换的,在C++中可以用reintepret_cast<>进行强制类型解释。总结:static_cast<>()和reintepret_cast<>()基本上把C语言
强制类型转换给覆盖了。 reinterpret_cast<>()很难保证移植性。
// ConsoleApplication18.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){double pi = 3.1415926;int p2 = static_cast<int>(pi);char *p3 = "hello";int *t = reinterpret_cast<int *>(p3);return 0;}
4)dynamic_cast<>(),动态类型转换,安全的基类和子类之间转换;运行时类型检查
5)const_cast<>(),去除变量的只读属性
- C++学习笔记:static_cast和reinterpret_cast
- 【C/C++学习】之二、static_cast和dynamic_cast、reinterpret_cast
- C++学习笔记(11)----static_cast、dynamic_cast、reinterpret_cast、和const_cast
- C++学习笔记(13)----static_cast、dynamic_cast、reinterpret_cast、和const_cast----(2)
- static_cast,dynamic_cast,reinterpret_cast和c语言转换
- 讨论static_cast 和 reinterpret_cast。
- static_cast和reinterpret_cast揭密
- STATIC_CAST 和 REINTERPRET_CAST
- static_cast和reinterpret_cast揭秘
- reinterpret_cast和static_cast
- static_cast 和 reinterpret_cast
- static_cast,dynamic_cast和reinterpret_cast
- static_cast和reinterpret_cast
- static_cast和reinterpret_cast
- static_cast和reinterpret_cast
- static_cast和reinterpret_cast
- static_cast 和 reinterpret_cast
- C++ --> static_cast<> 和 reinterpret_cast<>
- UnsatisfiedLinkError错误解决
- centos7 mysql数据库安装和配置
- android apk变相打包技术。
- BLE-NRF51822教程2-工程初始化流程
- Android
- C++学习笔记:static_cast和reinterpret_cast
- log4j.properties 详解与配置步骤
- JAVASCRIPT 语言中的 this
- Ext.each的用法
- onConfigurationChanged,oncreate 等
- 如何将Android Studio中的项目上传到GitHub中
- Android 摇一摇功能
- LeetCode66: Plus One
- BLE-NRF51822教程3-sdk程序框架剖析