您的位置首页百科知识

如何使用static_cast类型转换

如何使用static_cast类型转换

的有关信息介绍如下:

如何使用static_cast类型转换

static_cast是C++的一种转换运算符,用于强制隐式转换,例如基类转换为子类,子类转换为基类,但是不同类之间是不能转换的。因此,本文告诉你如何使用static_cast进行类型转换,以便解决开发过程中的疑惑!

首先定义实现两个类,一个基类,一个继承基类的子类

然后再定义一个不相关的类CXYZPerson

完成上面的定义和实现之后,定义基类和子类的对象,然后将指向子类的指针转换为指向基类的指针,这种情况是安全的,再将指向基类的指针转换为指向子类的指针,这种情况的安全性是不确定的,但是,以上两个方式都是允许的

下面是对两个不相关的对象,即没有继承关系,进行static_cast转换

通过编译可以发现出现如下图所示的错误,表示static_cast不允许不相关的类进行转换

static_cast还可以对基础类型进行转换,例如下面将double转换int整型

点击运行调试,可以看出double类型转换为整数之后,被截断了,只取整数的部分

另外static_cast可以将void类型的指针转换为其他类型的指针

点击运行调试,看出void类型的指针可以转换为其他类型的指针,并且输出的值是正确的