C++如何使用dynamic_cast
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇内容主要讲解"C++如何使用dynamic_cast",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++如何使用dynamic_cast"吧!C.14
千家信息网最后更新 2025年12月03日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安全错误
数据库的锁怎样保障安全
宁波营销软件开发创新服务
2016中国数据库大会
安徽软件开发开发公司
供应链管理系统软件开发价格
告家长书 网络安全
电脑网络安全的概念
宋代历史数据库
数据库中如何查询薪资比员工高的
芷江网络安全监察部门
怎么做到网络安全口播
大学生开展网络安全教育目的
方舟 非专用多人服务器
数据库中的r-s
数据库中的数据是如何存放的
你使用过的数据库有哪些
手机网络安全的板报
西安数据库安全
网络技术在酒店中应用
c语言vf和数据库的区别
苏州有哪些大专学软件开发的
中国文献数据库跟哪个国家对接了
杭州服务器被黑客攻击
人事管理系统数据库设计
数据库dba的收入
香肠派对服务器修复补偿
从事网络安全累吗
vin代码车型数据库
敏捷软件开发适用于哪种类型软件
网络技术服务哪家服务好
互联网科技发展带来的便利