dynamic_cast 是 C++ 中用于类型转换的操作符,主要用于类继承体系中的安全向下转型。它在运行时检查转换是否合法,仅允许沿继承关系进行向上或向下转换,并要求类含有虚函数。若转换无效则返回空指针或抛出异常,确保类型安全。掌握其用法与限制对正确使用多态至关重要。
1、 先创建一个基类CBase,再定义一个带有virtual关键字的虚函数printf。
2、 创建CDervied子类继承CBase,并重写printf函数以实现特定功能。
3、 实现基础代码后,在主函数中添加指定代码段用于测试功能。
4、 运行调试显示,动态转换后指针为空,表明基类指针无法成功转为子类指针。
5、 修改主函数测试代码,定义基类指针指向子类对象,并将其动态转换为子类指针。
6、 运行调试后可见,基类指针指向子类时可动态转换为子类指针。
7、 修改主函数测试代码,将指向子类对象的基类引用动态转为子类引用。
8、 运行调试后可见,基类引用指向子类对象时,可成功转换为子类引用。
