C++ 显式类型转换
来源:互联网 发布:留燕软件 编辑:程序博客网 时间:2024/06/04 17:48
对于类型转换,我在查资料的时候看到了一种很有意思的解释,我们可以这样理解类型转换:
某块内存中的数据是不变的,而类型就是我们戴上的眼镜,当我们戴上一种眼镜后,我们就会用对应的类型来解释内存中的数据,这样不同的解释就得到了不同的信息。
所谓强制类型转换实际上就是换上另一副眼镜后再来看同样的那块内存数据。
C++中有以下四种显式类型转换:
const_cast用来去掉const属性,四种类型转换中只有它可以做到
static_cast就是静态类型转换,静态类型包括一般类型,静态类型的内存分配在栈上。它没有在运行时检查来确保这项转化是安全的转化,当遇到有歧义的指针时,dynamic_cast会失败,而static_cast将返回,好像没有任何错误一样。这是非常危险的。
dynamic_cast,命名上理解是动态类型转换,如子类和父类之间的多态类型转换。dynamic_cast是安全的,但是它仅适用于指针和引用,并且运行时检查是一个负担。
reinterpret_cast的意思是重新解释类型,但没有进行二进制的转换。它的实际动作及结果可能取决于编译器,因此意味着它不可移植。
4种类型转换的格式,如:TYPE B = static_cast<TYPE>(a)。
- C/C++的显式类型转换
- c——显式类型转换
- C隐式类型转换
- <C/C++> 类型转换
- C/C++:类型转换
- 逆天的C++:显式类型转换
- 显式类型转换
- 显式类型转换
- C 隐式类型转换 规则
- C语言隐式类型转换
- C语言隐式类型转换
- C语言中的隐式类型转换
- C语言隐式类型转换
- C语言隐式类型转换
- C语言隐式类型转换
- c语言隐式类型转换
- c语言中的隐式类型转换
- C语言隐式类型转换
- product of experts & mixture model
- 环境配置
- 【10月限时免费】中文事件标注数据
- VS2010程序打包操作(超详细的)
- mysql 子查询
- C++ 显式类型转换
- 设备的唯一标识
- 栈实例-括号匹配
- JS限制字符长度及特殊符号不能输入
- volley的backoff因子
- sql server 2005 中的内连接和外连接 怎么理解?
- Linux 2.6 中的页面回收与反向映射(匿名页面/文件页面)
- 【VBA研究】用VBA实现excel与Oracle数据库交互
- android.mk中引用第3方 jar包的方法