C++如何使用dynamic_cast
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容主要讲解"C++如何使用dynamic_cast",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++如何使用dynamic_cast"吧!C.14
千家信息网最后更新 2026年11月04日C++如何使用dynamic_castExample(示例)
Notes(注意)
本篇内容主要讲解"C++如何使用dynamic_cast",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++如何使用dynamic_cast"吧!
C.148:使用dynamic_cast进行指针类型转换时,将不能发现目标类看作是有效的选项
Reason(原因)
dynamic_cast转换允许检查是否指针指向一个在其继承结构中包含给定类的多态对象。由于转换失败的结果仅仅是返回一个空值,这个结果可以在执行时检查。这个特性允许根据结果选择不同的路径。和C.147不同,那里的失败是错误,而且不应该被用于条件执行。
Example(示例)
下面的例子描述的是Shape_owner的增加函数,它接受构造出来的Shape对象的所有权。对象也会在根据它们的几何属性有序加入views容器。在这个例子中,图形没有从几何属性继承。只有它的子类这么做了。
void add(Shape* const item)
{
// Ownership is always taken
owned_shapes.emplace_back(item);
// Check the Geometric_attributes and add the shape to none/one/some/all of the views
if (auto even = dynamic_cast(item))
{
view_of_evens.emplace_back(even);
}
if (auto trisym = dynamic_cast(item))
{
view_of_trisyms.emplace_back(trisym);
}
}
Notes(注意)
寻找所需类的失败会导致dynamic_cast返回一个空值,而解引用一个空指针会引起无定义的行为。因此应该总是认为dynamic_cast的结果可能为空并进行检查。
Enforcement(实施建议)
(复杂) 如果在dynamic_cast执行之后,没有对结果指针进行空判断,那么对使用这个指针的代码报警。
到此,相信大家对"C++如何使用dynamic_cast"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
指针
结果
C++
对象
检查
不同
例子
内容
几何
属性
学习
复杂
多态
实用
更深
有序
有效
代码
兴趣
函数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技产业
互联网金融监管科技数据
科技互联网公司装修
互联网巨头科技公司
互联网与未来科技
北京互联网络科技有限公司
万达互联网科技
开启互联网科技时代小说
互联网教育科技公司vipkid
常德市电业局互联网科技部
知域互联网科技有限公司大骗子
呼和浩特新华互联网科技学院
互联网领先科技宣传片
互联网科技接地气
互联网科技机房
北京军民互联网科技公司
现代互联网科技公司
平安好医生打造互联网科技医疗
利用互联网等科技手段
互联网科技企业文化
互联网金融科技
互联网科技卖菜
科技类互联网
互联网科技开发公司
互联网金融公司科技
农村开互联网科技讲堂
东莞新华互联网科技学校
互联网相关科技技术
北京互联网科技类企业分布
求路客互联网科技电话