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

【C++】如何判断类型

typeid的缺点

typeid对多态的情况不支持

#include <iostream>class Parent
{
public:Parent() {}
private:int a = 0;
};class Child :public Parent
{
public :Child() {}
private:int b = 0;
};int main()
{Parent* obj1 = new Child();Parent* pobj1 = obj1;std::cout << typeid(*obj1).name() << std::endl;		//输出 class Parentstd::cout << typeid(*pobj1).name() << std::endl;	//输出 class Parentreturn 1;
}

dynamic_cast

dynamic_cast<Child*>(pParent)尝试将一个基类指针转换为派生类指针,如果成功,返回指向该对象的派生类指针,失败返回nullptr。

缺点

dynamic_cast只支持多态的情况,即基类必须有虚函数

自己定义一个GetType

http://www.lryc.cn/news/421757.html

相关文章:

  • 让一切发生皆有利于我,在人生的长河中,我们常常面临诸多的不确定性和变化
  • 腾讯云AI代码助手:智能AI代码助手 ,新一代的高效代码开发辅助工具
  • C#:索引器 集合初始化器 事件访问器 枚举器 迭代器
  • css伪类选择器、盒子模型等
  • opencv-python图像增强三:图像清晰度增强
  • 第130天:内网安全-横向移动PTH哈希PTT 票据PTK密匙Kerberos密码喷射
  • SB3045LFCT-ASEMI无人机专用SB3045LFCT
  • RPA财务机器人是什么,RPA的具体应用场景有哪些?| 实在RPA研究
  • 滑动窗口 | Java | (hot100) 力扣 3
  • 【产品经理】竞品分析怎么理解?拆解一下
  • 合规性导航:处理爬虫数据用于机器学习的最佳实践
  • spring中使用到的设计模式有哪些
  • splitcontainer控件设置固定大小
  • 最近在写的支付模块
  • 解决域名加别名后再代理或者映射到fastadmin项目
  • Armv9.5架构新增的关键扩展--精简版
  • STM32 GPIO 模块
  • 网络剪枝——network-slimming 项目复现
  • Spring 懒加载的实际应用
  • PyQT 串口改动每次点开时更新串口信息
  • 三级_网络技术_19_路由器的配置及使用
  • 【STM32 Blue Pill编程】-STM32CubeIDE开发环境搭建与点亮LED
  • 【数据结构】六、图:4.图的遍历(深度优先算法DFS、广度优先算法BFS)
  • 29、号外!号外!ERA5再分析数据下载方式更新啦
  • 智能识别,2024年SD卡数据恢复软件的智能进化
  • 浙大数据结构慕课课后题(04-树5 Root of AVL Tree)
  • Golang | Leetcode Golang题解之第331题验证二叉树的前序序列化
  • zdppy+vue3+onlyoffice文档管理系统项目实战 20240812上课笔记
  • 怎么将mov视频转换成mp4?将mov视频转换成mp4的方法
  • 大数据技术——实战项目:广告数仓(第五部分)