static_cast是C++的一种转换运算符,用于强制隐式转换,例如基类转换为子类,子类转换为基类,但是不同类之间是不能转换的。因此,本文告诉你如何使用static_cast进行类型转换,以便解决开发过程中的疑惑!
首先定义实现两个类,一个基类,一个继承基类的子类
然后再定义一个不相关的类CXYZPerson
完成上面的定义和实现之后,定义基类和子类的对象,然后将指向子类的指针转换为指向基类的指针,这种情况是安全的,再将指向基类的指针转换为指向子类的指针,这种情况的安全性是不确定的,但是,以上两个方式都是允许的
下面是对两个不相关的对象,即没有继承关系,进行static_cast转换
通过编译可以发现出现如下图所示的错误,表示static_cast不允许不相关的类进行转换
static_cast还可以对基础类型进行转换,例如下面将double转换int整型
点击运行调试,可以看出double类型转换为整数之后,被截断了,只取整数的部分
另外static_cast可以将void类型的指针转换为其他类型的指针
点击运行调试,看出void类型的指针可以转换为其他类型的指针,并且输出的值是正确的
标签:static,cast,类型转换