dim private public static_C++ 强制类型转换操作符 static_cast
(给CPP开发者加星标,提升C/C++技能)
来源:melonstreet https://www.cnblogs.com/QG-whz/p/4509710.html
static_cast是一个强制类型转换操作符。强制类型转换,也称为显式转换,C++中强制类型转换操作符有static_cast、dynamic_cast、const_cast、reinterpert_cast四个。本节介绍static_cast操作符。
编译器隐式执行的任何类型转换都可以由static_cast来完成,比如int与float、double与char、enum与int之间的转换等。
double a =
当编译器隐式执行类型转换时,大多数的编译器都会给出一个警告:
2010 projects\
使用static_cast可以明确告诉编译器,这种损失精度的转换是在知情的情况下进行的,也可以让阅读程序的其他程序员明确你转换的目的而不是由于疏忽。
把精度大的类型转换为精度小的类型,static_cast使用位截断进行处理。
使用static_cast可以找回存放在void*指针中的值。
double a =
static_cast也可以用在于基类与派生类指针或引用类型之间的转换。然而它不做运行时的检查,不如dynamic_cast安全。static_cast仅仅是依靠类型转换语句中提供的信息来进行转换,而dynamic_cast则会遍历整个类继承体系进行类型检查,因此dynamic_cast在执行效率上比static_cast要差一些。现在我们有父类与其派生类如下:
:
class ANIMAL{
此时我们进行派生类与基类类型指针的转换:注意从下向上的转换是安全的,从上向下的转换不一定安全。
int main(){
static_cast可以把任何类型的表达式转换成void类型。
static_cast把任何类型的表达式转换成void类型。
另外,与const_cast相比,static_cast不能把换掉变量的const属性,也包括volitale或者__unaligned属性。
推荐阅读
(点击标题可跳转阅读)
起底 C++ Range 令人惊讶的局限性!
C++ 中是如何调用 C 接口的?
看完本文有帮助?请分享给更多人
关注「CPP开发者」加星标,提升C/C++技能
好文章,我在看❤️
dim private public static_C++ 强制类型转换操作符 static_cast相关推荐
- C/C++ 之 C++强制类型转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)
文章转载自:https://www.cnblogs.com/chenyangchun/p/6795923.html .在了解这块时,发现了这篇文档,感觉写的很不错! c强制转换与c++强制转换 c 语 ...
- C++ 强制类型转换:static_cast、dynamic_cast、const_cast 和 reinterpret_cast
C++ 强制类型转换:static_cast.dynamic_cast.const_cast 和 reinterpret_cast static_cast dynamic_cast const_cas ...
- C++强制类型转换操作符 dynamic_cast
dynamic_cast是四个强制类型转换操作符中最特殊的一个,它支持运行时识别指针或引用. >>>>>>>>>>>编译器的RTTI设 ...
- project facets中没有dynamic_C++强制类型转换操作符 dynamic_cast
dynamic_cast是四个强制类型转换操作符中最特殊的一个,它支持运行时识别指针或引用. >>>>>>>>>>>编译器的RTTI设 ...
- 类型转换操作符:static_cast, dynamic_cast, const_cast, reinterpret_cast.
呵呵,今天来好好看看着几个转换操作符的用法.以前老是看着眼熟,但是用着手生.今天决定搞定这些个东西. 在C语言中类型转换有几种方式: 1. (expression). 在表达式外边加括号,由 ...
- C++ 强制类型转换操作符(static_cast、dynamic_cast、const_cast和reinterpret_cast)
C++中的四种操作符形式类型转换 1.static_cast (静态类型转换) 主要使用场景:适用于将void*转换为其他的指针 int a = 100; void* pv = &a; //i ...
- C++强制类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast
一.static_cast:static_cast<new_type> (expression) static_cast相当于传统的C语言里的强制转换,该运算符把expression转换为 ...
- dim private public static_static方法 (静态方法)
1.什么是方法 2.方法的作用 3.方法的语法(定义语法+调用语法+种类) 3.方法重载 1.什么是方法 生活:在生活中某个事物具备的一个功能,这个功能通常会被封装起来,我们 使用者不需要关心内部具体 ...
- dim private public static_PHP中const,static,public,private,protected的区别
const: 定义常量,一般定义后不可改变 static: 静态,类名可以访问 public: 表示全局,类内部外部子类都可以访问: private: 表示私有的,只有本类内部可以使用: protec ...
最新文章
- 2020版北大核心期刊目录_榜单|2020武大版核心期刊RCCSE高职高专成高院校学报类自然科学综合、社会科学综合学科权威、核心及准核心期刊目录...
- Java 组合模式及其应用
- Kali Linux常用服务配置教程安装及配置DHCP服务
- 零基础学习Java,全方位知识点总结!
- 一个好用的Chrome倒数计时器扩展 - Calendar and Countdown
- 为提高研发和测试质量而规范Scrum项目需求描述
- ffmpeg 将拆分的数据合成一帧_FFmpeg + OpenGLES 实现视频解码播放和视频滤镜
- matlab转差频率控制,转差频率控制的异步电机调速系统的研究
- alook浏览器_alook浏览器下载-Alook浏览器iOS版下载 苹果版v10.8-PC6苹果网
- java的 import注解_[java]一分钟学会spring注解之@Import注解
- 是==和!=相互依赖?
- MySQL连接localhost失败
- 电脑怎么重装系统后显示器没有信号了
- python与vb可以互换吗_VB转换为Python:在线把VB代码转为Python
- C语言新手入门贪吃蛇的链表实现-控制光标位置,流畅不闪屏
- 中国知名网站(alexa top 500)
- OceanBase 社区版 3.1.3 Docker镜像尝鲜,能错过?不存在的
- 怎样快速备份电脑文件?
- Nginx(1)基础部分
- Android 模拟器实现打电话