在c++中,有哪4个与类型转换相关的关键字,这些关键字各有什么特点,应该在什么场合下使用?
来源:互联网 发布:java web书籍推荐 编辑:程序博客网 时间:2024/05/17 09:00
1、reinterpret_cast<type-id> (expression)
type-id 必须是一个指针、引用、算术类型、函数指针或者成员指针。它可以把一个指针转换成一个整数,也可以把一个整数转换成一个指针(先把一个指针转换成一个整数,再把该整数转换成原类型的指针,还可以得到原先的指针值)。
2、static_cast<T*>(content)静态转换
主要用于c++中内置的基本数据类型之间的转换,在编译期间处理,但是没有运行时类型的检测来保证转换的安全性。
该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:
①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。
进行上行转换(把派生类的指针或引用转换成基类表示)是安全的;
进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全的。
②用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。
③把空指针转换成目标类型的空指针。
④把任何类型的表达式转换成void类型。
注意:static_cast不能转换掉expression的const、volatile、或者__unaligned属性。
C++中static_cast和reinterpret_cast的区别
C++primer第五章里写了编译器隐式执行任何类型转换都可由static_cast显示完成;reinterpret_cast通常为操作数的位模式提供较低层的重新解释
3、将一个基类对象指针(或引用)cast到继承类指针,dynamic_cast会根据基类指针是否真正指向继承类指针来做相应处理.const_cast,用于修改类型的const或volatile属性。
- 在c++中,有哪4个与类型转换相关的关键字,这些关键字各有什么特点,应该在什么场合下使用?
- 在C++中,有哪4个与类型转换相关的关键字?这些关键字各有什么特点,应该在什么场合下使用?
- 在c++中,有哪4个与类型转换相关的关键字,这些关键字各有什么特点,应该在什么场合下使用?
- 在C++中,有哪4个与类型转换符相关的关键字?这些关键字各有什么特点,在什么场合下使用?
- 在C++中,有哪4个与类型转换相关的关键字?这些关键字有什么特点?应该在什么场合使用?
- C++中,有哪4种与类型转换相关的关键字?各有什么特点?应该在什么场合下使用?
- 剑指offer——c++中,有哪4个与类型有关的关键字?它们各有的特点?应该在什么场合使用?
- 常见的网络图像格式有哪些,在HTML中各适合什么场合?
- C++中4个与类型转换相关的关键字
- 在Java中,final修饰的类有什么特点
- 关键字static的作用与关键字const有什么含意?
- c++有哪四个类型转换相关的关键字
- shell中各种括号()、(())、[]、[[]]、{},在什么场合下使用?
- C++与类型转换相关的四个关键字及其特点
- C++与类型转换相关的四个关键字及其特点
- 在C语言头文件中“”与<>有什么区别?
- 在C语言头文件中“”与<>有什么区别?
- C++中关键字typename有什么作用
- 批量修改文件名(find & rename & sed)
- Verilog 数字电路设计之带hazard的五级流水线CPU
- 通过maven将springboot项目发布为jar包
- Android:学习AIDL,这一篇文章就够了(上)
- 2016 China-Final 解题报告
- 在c++中,有哪4个与类型转换相关的关键字,这些关键字各有什么特点,应该在什么场合下使用?
- vue.js学习(二)
- C/C++中extern关键字详解
- 前缀、中缀、后缀表达式
- ss5客户端设置
- 第四十章 SpringBoot AOP
- Canvas 实现时钟
- Java并发编程的艺术(十)——线程池(1)
- HTTPS 为什么更安全