C++的四个显式的数据类型转换函数

1 reinterpret_cast(在编译期间实现转换)

reinterpret_cast类型转换函数将一个类型的指针转换成另一个类型的指针。这种转换不用于修改指针变量值数据存放的格式(不改变指针变量值),只需在编译期间重新解释指针的类型就可以做到。

reinterpret_cast可以将指针值转换为一个整型数。但是不能用于非指针类型的转换,否则将不会通过编译。

什么时候使用reinterpret_cast进行数据类型的转换:

(1)将基本类型指针转换成另一个类型的指针。

例如:

基本类型指针的转换

double d = 9.3;
double *pd = &d;
int *pi = reinterpret_cast<int *>(pd);//相当于隐式转换int * pi = (int *)pd;

(2)将一个类的指针转换为另一个类的指针。

类指针类型的转换:

class A{};
class B{};
A* pa = new A;
B* = reinterpret_ cast<B*>pa;

(3)不能转换非指针类型

例如:

将int类型转换为float类型时是不能够转换成功的

int i = 8;

double dl = reinterpret_cast<double>(i);

(4)不能将一个const指针转换成void*类型的指针

const int* pci = 0;

void *pv = reinterpret_cast<void*>(pci);

时间: 2024-08-21 04:30:45

C++的四个显式的数据类型转换函数的相关文章

显式的进行类型转换是什么意思

问题描述 显式的进行类型转换是什么意思 解决方案 显式就是加上一个括号类型.比如 int x = 1; char c = x; //错误,必须写 char c = (char)x; 反过来 char c = 'a'; int x = c; //不需要写类型转换,但是编译器会自动加上,这个叫隐式转换. 但是也可以写: int x = (int)c; //这么写更清楚一些.

详解在C++中显式默认设置的函数和已删除的函数的方法_C 语言

在 C++11 中,默认函数和已删除函数使你可以显式控制是否自动生成特殊成员函数.已删除的函数还可为您提供简单语言,以防止所有类型的函数(特殊成员函数和普通成员函数以及非成员函数)的参数中出现有问题的类型提升,这会导致意外的函数调用. 显式默认设置的函数和已删除函数的好处 在 C++ 中,如果某个类型未声明它本身,则编译器将自动为该类型生成默认构造函数.复制构造函数.复制赋值运算符和析构函数.这些函数称为特殊成员函数,它们使 C++ 中的简单用户定义类型的行为如同 C 中的结构.也就是说,可以创

Sql Server函数全解&lt;三&gt;数据类型转换函数和文本图像函数

原文:Sql Server函数全解<三>数据类型转换函数和文本图像函数 一:数据类型转换函数 在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换.对于数据类型相近的值是有效的,比如int和float,但是对于其它数据类型,例如整型和字符类型,隐士转换就无法实现了,此时必须使用显示转换.为了实现这种显示转换,T-SQL提供了两个显示转换函数,分别是CAST和CONVERT函数. CAST(x AS type)和CONVERT(type,x)函数将一个类型的值转换为另一个

深入讲解C++数据类型转换的相关函数的知识_C 语言

C++数据类型转换以及转换构造函数 标准数据类型之间的转换 在C++中,某些不同类型数据之间可以自动转换,例如 int i = 6; i = 7.5 + i; 编译系统对 7.5是作为double型数处理的,在求解表达式时,先将6转换成double型,然后与7.5相加,得到和为13.5,在向整型变量i赋值时,将13.5转换为整数13,然后赋给i.这种转换是由C++编译系统自动完成的,用户不需干预.这种转换称为隐式类型转换. C++还提供显式类型转换,程序人员在程序中指定将一种指定的数据转换成另一

c++显式类型转换示例详解_C 语言

标准C++包含一个显式的转换语法: static_cast:用于"良性"和"适度良性"的转换,包括不用强制转换 const_cast:用于"const"和/或"volatile"进行转换 reinterpret_cast:转换为完全不同的意思.为了安全的使用它,关键必须转换回原来的类型.转换成的类型一般只能用于位操作,否则就是为了其他隐秘的目的.这是所有转换中最危险的. dynamic_cast:用于类型安全的向下转换 ---

php 数据类型转换

本篇文章主要分享一下PHP数据类型转换的知识. PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有: (int).(integer):转换成整形 (float).(double).(real):转换成浮点型 (string):转换成字符串 (bool).(boolean):转换成布尔类型 (array):转换成数组 (object):转换成对象 PHP数据类型有三种转换方式: (1)在要转换的变量之前加上用括号括起来的目标类型,例如: (int)  (bool)  (float)  (

简要JAVA数据类型转换

数据|数据类型|转换 1如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int radix]); 2). int i = Integer.valueOf(my_str).intValue(); 注: 字串转成 Double, Float, Long 的方法大同小异. 2 如何将整数 int 转换成字串 String ? A. 有叁种

缺省构造函数不能处理隐式超构造函数抛出的异常类型 IOException。必须定义显式构造函数

问题描述 缺省构造函数不能处理隐式超构造函数抛出的异常类型 IOException.必须定义显式构造函数 int lastnum = getNum(source.getProperty(""fileName"")); public static int getNum(String Filename) throws IOException { InputStream myxls; myxls = new FileInputStream(Filename); sr =

显式地释放你的ADO对象

ado|对象 在真实的生活里,程序员天生懒惰. 这个事实使我们经常深陷BUG的泥塘. 尤其是当用ASP处理数据库连接时,它将让你感觉身处油锅. 在ASP里,我们建立数据库连接,然后用ADO获得数据查询的结果; 我们最常用到的是ADODB.Connection和ADODB.Recordset. 让我们看一个简单的例子来了解一下如何使用这两个对象: Dim objConnSet objConn = Server.CreateObject("ADODB.Connection")objConn