当前位置: 首页 > article >正文

在C++中,dynamic_cast是一种用于在类的继承体系中进行安全向下转型

在C++中,dynamic_cast是一种用于在类的继承体系中进行安全向下转型(即将基类指针或引用转换为派生类指针或引用)的操作符。它主要用于多态环境中,以确保类型转换是有效的。如果转换无效,dynamic_cast将返回nullptr(对于指针)或抛出std::bad_cast异常(对于引用)。

以下是使用dynamic_cast将父类指针或引用转换为子类指针或引用的基本示例:

示例代码

【cpp】
#include
#include
#include

class Base {
public:
virtual ~Base() {} // 必须有虚析构函数,以便支持多态
};

class Derived : public Base {
public:
void derivedFunction() {
std::cout << “Derived function called” << std::endl;
}
};

void checkDynamicCast(Base* basePtr) {
// 尝试将Base转换为Derived
Derived* derivedPtr = dynamic_cast<Derived*>(basePtr);

if (derivedPtr) {
    // 转换成功,调用派生类的函数
    derivedPtr->derivedFunction();
} else {
    // 转换失败,basePtr不是Derived类的实例
    std::cout <

http://www.kler.cn/a/461011.html

相关文章:

  • 【网络】什么是路由协议(Routing Protocols)?常见的路由协议包括RIP、OSPF、EIGRP和BGP
  • redux react-redux @reduxjs/toolkit
  • AE RFG 1251 Generator User Manual
  • STM32拓展 低功耗案例1:睡眠模式 (register)
  • SpringMVC(一)配置
  • 数据挖掘:定义、挑战与应用
  • 搭建ZooKeeper分布式集群
  • 2、单片机、CC2530、zigbee期末考试选择、填空题含答案
  • 如何确保Kafka集群的高可用?
  • Cursor小试1.生成一个网页的接口请求工具
  • Django 管理界面实现自动提交和动态字段选项
  • 鸿蒙HarmonyOS应用开发 探索 HarmonyOS Next-从开发到实战掌握 HarmonyOS Next 的分布式能力
  • C++中宏的使用方法
  • AI同传的崛起:人工同传还能坚持多久?
  • 股市学习 seekingalpha tradingview
  • OpenAI 的 o3 — AGI 还是闪亮的幻影?
  • 信息安全管理:网络安全
  • iPhone 14、iPhone SE 3,提前淘汰
  • 深度学习-稀疏卷积
  • SD-WAN与传统专线网络的区别分析
  • Codigger集成Copilot:智能编程助手
  • 【2024年-7月-27日-开源社区openEuler实践记录】剖析 elease - management:优化软件发布流程的开源方案
  • 七次课掌握 Photoshop:动作及其它
  • 开源的go语言统一配置中心 - nacos + nacos go sdk
  • uniapp:微信小程序文本长按无法出现复制菜单
  • 工信部助力新型储能制造业,CES Asia 2025展现前沿科技