前言

一说起强制类型转换大家都很熟悉,相信很多学习完C++的朋友还在使用C语言的强制类型的方式 (类型)变量.

C++其实也具有自己的一套强制类型转换它们分明是:static_cast  reinterpret_cast  const_cast  dynamic_cast四种类型.

那么肯定会有人好奇C++是不是闲,C语言的强制类型用的舒舒服服的,为什么要新推出来这几个?

新类型的强制转换可以提供更好的控制强制转换过程,允许控制各种不同种类的强制转换。C++中风格是static_cast。C++风格的强制转换其他的好处是,它们能更清晰的表明它们要干什么。程序员只要扫一眼这样的代码,就能立即知道一个强制转换的目

的。

static_cast

static_cast用于非多态类型的转换(静态转换),任何标准转换都可以用它,但它不能用于两个不相关的类型进行转换.

何为不相关类型? 比如int 和 double char short就是相关类型. 和int*就是不相关类型.

我们来看一看static_cast的用法.  例如,通过将一个运算对象强制转换成double类型就能使表达式执行浮点数除法:

double slope = static_cast(j) / i;

当static_cast需要把一个较大的算术类型赋值给较小的类型时,static_cast非常有用。此时,强制类型转换告诉程序的读者和编译器:我们知道并且不在乎潜在的精度损失。一般来说,如果编译器发现一个的算术类型试图赋值给较小的类型,就会给出警告信息;但是当我们执行了显式的类型转换后,警告信息就会被关闭了。

c语言const类型强制转换,关于C++的强制类型转换浅析相关推荐

  1. c语言不通类型指针转换,C语言之强制类型转换与指针--#define DIR *((volatile unsigned int *) 0x0022)...

    强制类型转换形式:(类型说明符) (表达式) 举例说明:1) int a; a = (int)1.9; 2)char *b; int *p; p = (int *) b; //将b的值强制转换为指向整 ...

  2. C语言各种类型之间转换详解

    目录 1. C基本类型变量 2. 符号扩展 2.1 规则一: 2.2 规则二: 2.3 规则三: 3. 零扩展 4. 长类型转换为短类型 5. 自动类型转换 5.1 赋值时的类型转换 5.2 运算时的 ...

  3. C/C++编程知识分享:C++四种强制转换,教你多种类型转换方式!

    C语言的强制转换为在数据面前之间加数据类型进行转换,即(目标数据类型)原数据类型.c++为了更好的区分强制转换的类型,达到见其名知其意的效果,共将强制转换分为四种,即 1.static_cast< ...

  4. python如何强制转换数据类型_python数据类型强制转换实例详解

    如果是字符串进行强制转换, 仅仅就是在原数据类型的两边套上引号 2.list : 强制转换成列表""" 如果是字符串,会把每一个字符都单独作为一个元素放到新的列表中 如果 ...

  5. python如何强制转换数据类型,python数据类型强制转换的方法

    python数据类型强制转换的方法 发布时间:2020-06-22 16:43:25 来源:亿速云 阅读:101 作者:清晨 这篇文章将为大家详细讲解有关python数据类型强制转换案例,小编觉得挺实 ...

  6. c++语言中类型的转换

    // test.cpp : 定义控制台应用程序的入口点. //#include "stdafx.h" #include "stdio.h" #include & ...

  7. java中子类与父类强制转换_java中父类强制转换成子类的错觉

    引言:父类引用指向子类对象在java中十分常见,比如: Object object=new a();//a是一个类名 但是有时候我们看见子类引用指向了父类对象,就是上边的反过来,比如 图片中圈1标识的 ...

  8. java小数强制转换,Java中的强制类型转换 大数转小数

    首先要明确一下转换规则:大数转小数,多出的高位部分会被截断.比如 int 占 4个byte(32 bit), byte占 1个byte(8bit), 那int 转 byte ,int 高位多出的那24 ...

  9. java 泛型强制转换_java – 使用泛型强制转换为内部类

    请考虑以下代码: public class Outer { public class Inner{ } public static Outer.Inner get(){ Object o = new ...

最新文章

  1. android手机变微软手机号码,手机居然变平板?微软沦落到抄袭5年前安卓设计
  2. 【django轻量级框架】云端系统之Django框架
  3. 人工智能是如何改变IT运维和DevOps的?
  4. Java中JDBC进阶教程之数据库的隔离级别!
  5. t检验的p值对照表_论文数据分析实战 | 如何对汇总数据进行t检验
  6. ln: failed to create symbolic link ‘/usr/bin/mysql’: File exists
  7. 从实操教学到赛题演练,腾讯专家亲授TI-ONE平台操作攻略!
  8. excel亮灯怎么设置_EXCEL高手进,用EXCEL实现亮灯功能
  9. ibm刀片服务器虚拟化,刀片服务器内置虚拟化 IBM升级服务器
  10. win10如何提高电脑画质_详细教您win10显示器分辨率怎么调节。
  11. AltiumDesigner PCB案牍(1)——Gerber文件的生成
  12. 学习线性代数-行列式 笔记(一)
  13. Sinon 入门,看这篇文章就够了
  14. 13/6/21 Hella Intern Interview
  15. 垃圾回收①---概述+相关算法
  16. 饿了么端智能本地生活领域探索与实践
  17. 马斯克终于认错:裁掉他们是我最大的错误,但黑粉们却没能笑太久
  18. 有关计算机组成原理知识的论文,计算机组成原理的相关论文|计算机组成原理论文...
  19. 通过PID直接获取淘客链接
  20. swoole服务的重启方式

热门文章

  1. col-xs-*,col-sm-*,col-md-* 的意义
  2. 微信开发使用wechat.class.php调用API,测试发现返回no access,公众号出现暂时无法提供服务
  3. python之蜘蛛侠
  4. 腐蚀rust高速箭怎么做不了_腐蚀RUST创意工坊皮肤制作教程
  5. 便宜适合租用学习Linux的云服务器运营商推荐介绍
  6. 期货交易基差(期货基差和价差)
  7. 【PB】安装PB9.0问题
  8. Authing 客户故事|仙工智能
  9. 4g模块通过什么协议与服务器通信,4G通信模块的分析说明
  10. 扫地机器人石头爬坡_3年进化——“石头扫地机器人T65”与“米家扫地机器人”对比评测...