dynamic cast用法详解

dynamic_cast 是 C++ 中用于类型转换的操作符,主要用于类继承体系中的安全向下转型。它在运行时检查转换是否合法,仅允许沿继承关系进行向上或向下转换,并要求类含有虚函数。若转换无效则返回空指针或抛出异常,确保类型安全。掌握其用法与限制对正确使用多态至关重要。

1、 先创建一个基类CBase,再定义一个带有virtual关键字的虚函数printf。

2、 创建CDervied子类继承CBase,并重写printf函数以实现特定功能。

3、 实现基础代码后,在主函数中添加指定代码段用于测试功能。

4、 运行调试显示,动态转换后指针为空,表明基类指针无法成功转为子类指针。

5、 修改主函数测试代码,定义基类指针指向子类对象,并将其动态转换为子类指针。

6、 运行调试后可见,基类指针指向子类时可动态转换为子类指针。

7、 修改主函数测试代码,将指向子类对象的基类引用动态转为子类引用。

8、 运行调试后可见,基类引用指向子类对象时,可成功转换为子类引用。

指针
新浪科技公众号
新浪科技公众号

“掌”握科技鲜闻 (微信搜索techsina或扫描左侧二维码关注)

创事记

科学探索

科学大家

苹果汇

众测

专题

官方微博

新浪科技 新浪数码 新浪手机 科学探索 苹果汇 新浪众测

公众号

新浪科技

新浪科技为你带来最新鲜的科技资讯

苹果汇

苹果汇为你带来最新鲜的苹果产品新闻

新浪众测

新酷产品第一时间免费试玩

新浪探索

提供最新的科学家新闻,精彩的震撼图片