dynamic_cast使用以及原理探究

dynamic_cast运算符能够将基类的指针或引用安全的转换为派生类的指针或者引用。转换失败,返回空地址。

RTTI是运行阶段类型识别(Runtime Type Identification)的简称。是指程序在运行阶段确定对象的类型。

C++中可以进行运行时识别出变量等类型信息的还有typeid

使用dynamic_cast转换的前提是A必须有虚函数,即虚函数表。dynamic_cast的关键就是虚函数表,因为B类有自己的虚函数表,A类也有自己的虚函数表,根据虚函数表的不同可以判断到底是属于哪个类。我们简单仿写一下。当然,我们只是尝试一下,不能用于实际,毕竟开销大且有局限性。

dynamic_cast使用以及原理探究

视频讲解:https://www.bilibili.com/video/BV1L8411472U

笔记:https://mp.weixin.qq.com/s/z48TVU6dADqr6eOWSqOPbQ

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容