static cast(static cast和dynamic cast)
大家好,今天就和小熊一起来看看这个问题吧 。static cast和dynamic cast,static cast很多人还不知道,现在让我们一起来看看吧!
1、 首先,定义并实现两个类,一个基类和一个继承基类的子类。
2、 然后定义一个不相关的类CXYZPerson。
3、 经过上面的定义和实现,可以放心的定义基类和子类的对象,然后把指向子类的指针转换成指向基类的指针,再把指向基类的指针转换成指向子类的指针。然而,这种情况的安全性是不确定的,但是上述两种方法都是允许的。
4、 下面是两个不相关的对象的static_cast转换,也就是没有继承关系。
5、 通过编译可以发现下图所示的错误,这意味着static_cast不允许转换不相关的类。
6、 Static_cast也可以转换基本类型,比如下面double会转换成int integer。
7、 点击Run Debug,可以看到double类型转换成整数后,被截断,只取整数部分。
8、 此外,static_cast可以将void类型的指针转换为其他类型的指针。
9、 点击运行调试,可以看到void类型的指针可以转换成其他类型的指针,输出值是正确的。
这篇文章到此就结束,希望能帮助到大家。
扫描二维码推送至手机访问。
版权声明:文章内容摘自网络,如果无意之中侵犯了您的版权,请联系本站,本站将在3个工作日内删除。谢谢!