有哪些有趣的动态转换方式可以尝试?
- 内容介绍
- 文章标签
- 相关推荐
本文共计949个文字,预计阅读时间需要4分钟。
最近在项目代码中发现了一种神奇的转换类型——类型A的指针可以动态转换成完全没有任何关系的另一个类型指针。这完全颠覆了我的认知。为了更深入理解这个神奇的现象,继续挖掘...
缘起
最近,在项目代码中看到一个非常神奇的类型转换—— 类型A 的指针居然能动态转换成另外一个完全没有任何关系的类指针。这…… 完全颠覆了我的认知。
为了进一步了解这个神奇的操作,我特意模拟了项目代码中的情形,一起来看看吧。
代码简介
BaseA 和 BaseB 是两个基类,NewA 继承自 BaseA,NewB 继承自 BaseB。TestB() 会在堆上 new 一个 NewB 的对象,但是会强制转换成 BaseA 类型的指针并返回(这个操作太逆天,大家一定不要在项目代码中这么玩儿)。main() 函数中模拟使用和释放。背景介绍完毕,看代码。
本文共计949个文字,预计阅读时间需要4分钟。
最近在项目代码中发现了一种神奇的转换类型——类型A的指针可以动态转换成完全没有任何关系的另一个类型指针。这完全颠覆了我的认知。为了更深入理解这个神奇的现象,继续挖掘...
缘起
最近,在项目代码中看到一个非常神奇的类型转换—— 类型A 的指针居然能动态转换成另外一个完全没有任何关系的类指针。这…… 完全颠覆了我的认知。
为了进一步了解这个神奇的操作,我特意模拟了项目代码中的情形,一起来看看吧。
代码简介
BaseA 和 BaseB 是两个基类,NewA 继承自 BaseA,NewB 继承自 BaseB。TestB() 会在堆上 new 一个 NewB 的对象,但是会强制转换成 BaseA 类型的指针并返回(这个操作太逆天,大家一定不要在项目代码中这么玩儿)。main() 函数中模拟使用和释放。背景介绍完毕,看代码。

