在Java中,如果A是基类,B是A的派生类,那么instanceof可以用来判断一个实例对象是A还是B,相当于一个二元操作符,但与==, >, < 不同的是,它是由字母组成,是Java的保留字。而在C++中却没有这样关键字,不过我们可以使用dynamic_cast来实现同样的功能,请参见下面的代码:

Java 'instanceof'

// Java 'instanceof'
public class A {
// ...
}public class B extends A {
// ...
}public class C extends A {
// ...
}public void process(A a) {if (a instanceof B) {// Process B
    }if (a instanceof C) {// Process C
    }
}

C++ 'dynamic_cast'

// C++ 'dynamic_cast'
class A {
// ...
}class B: public A {
// ...
}class C: public A {
// ...
}void process(A *a) {if (B *b = dynamic_cast<B*> (a)) {// Process B
    }if (C *c = dynamic_cast<C*> (a)) {// Process C
    }
}

C++ 'dynamic_cast' and Java 'instanceof' 使用对比相关推荐

  1. Atitit。DD dragdrop拖拽功能c#.net java swing的对比与实现总结

    Atitit.D&D drag&drop拖拽功能c#.net java swing的对比与实现总结 1. 实现一个D&D操作一般包括三个步骤: 1 2. .net黑头的拖曳机制 ...

  2. Java Instanceof

    Java Instanceof Instanceof是一个非常简单的运算符,前一个操作通常是一个引用类型的变量,后一个操作数通常是一个类(也可以是接口,可以把接口理解成一种特殊的类),它用于判断前面的 ...

  3. java锁性能对比_提高Java的锁性能

    java锁性能对比 Plumbr是唯一可以通过解释应用程序性能数据来自动检测Java性能问题根本原因的解决方案. 几个月前,我们在Plumbr中引入了锁定线程检测之后,我们开始收到类似于"嘿 ...

  4. Java instanceof关键字详解

    严格来说 instanceof 是 Java 中的一个双目运算符,由于它是由字母组成的,所以也是 Java 的保留关键字.在 Java 中可以使用 instanceof 关键字判断一个对象是否为一个类 ...

  5. 对比java和python对比

    1.难易度而言.python远远简单于java. 2.开发速度.Python远优于java 3.运行速度.java远优于标准python,pypy和cython可以追赶java,但是两者都没有成熟到可 ...

  6. Java开源工作流对比

    Java开源工作流对比 工作流(Workflow) 1.业务过程的部分或整体在计算机应用环境下的自动化: 2.是对工作流程及其各步骤之间业务规则的抽象.概括描述: 3.工作流主要解决的问题是:为了实现 ...

  7. Java instanceof 各种数据类型判断

    Java  instanceof 各种数据类型判断 在导出的时候,要匹配数据,而数据有各种类型,只能用instanceof一一进行判断了. 目标: 表头: {"aa"," ...

  8. class instance java_[Java] Java instanceof 和 Class.isInstance()区别与应用

    一.instanceof 关键字 instanceof 关键字用于判断某个实例是否是某个类的实例化对象,形如: String.class instanceofClass"test" ...

  9. java instanceof 区别_Java 中 instanceof 和 isInstance 的区别

    今天百度了一下 instanceof 和 isInstance() 的区别,结果不理想.大多数人先贴一段测试代码,然后分别解释它们的用法,根本不是解释它们之间的区别. 本来想快点搜一下看个结论,不料还 ...

最新文章

  1. 【Flocking、PPO无人机群控制算法】基于Flocking和PPO深度强化学习的无人机群控制算法的MATLAB仿真
  2. tensorflow 进阶 五 ---TensorFlow conv2d原理及实践
  3. linux 双网卡绑定(bonding)实现负载均衡或故障转移
  4. (转)深入理解Java中的final关键字
  5. 电脑一开机出rebootand_北京联想电脑维修点【蓝伟博达笔记本维修吧】
  6. jquery实现输入框动态增减
  7. python 拟牛顿法 求非线性方程_C语言实现迭代法求非线性方程的根
  8. python编程广告_为什么铺天盖地都是Python的广告?
  9. android背景颜色动态修改,Android自定义TextView带圆角及背景颜色(动态改变圆角背景颜色)...
  10. python装饰器详解-如何理解Python装饰器?
  11. 给浪费时间找种方法?
  12. 【实用工具系列】MathCAD入门安装及快速上手使用教程
  13. 计算机指纹驱动程序,计算机指纹失灵,提示找不到支持Windows Hello指纹的指纹识别器...
  14. 【数据挖掘】K-Means 一维数据聚类分析示例
  15. cf_Gym 101572 K.Kayaking Trip
  16. 渗透工具-fscan内网安全漏洞扫描
  17. 机器人运动学标定:基于指数积的串联机构运动学标定
  18. Java Json格式化工具
  19. 解决bootstrap table的export扩展模块利用tableExport导出pdf中文乱码问题
  20. 中医药文化代表东方的思维方式是智慧结晶

热门文章

  1. 【Java】Int类型逻辑运算符的详细描述---含代码
  2. Windows系统中通过命令查看文件的MD5,SHA1,SHA256校验值
  3. python 列表推导_Python 列表推导式使用的注意事项
  4. 测试需求分析和测试策略制定
  5. 谱比法计算岩石的品质因子的c语言程序,地层品质因子计算方法及系统与流程...
  6. 下c语言实现wc_用 Python 实现词云可视化
  7. raster | R语言中的空间栅格对象及其基本处理方法(Ⅲ):切片/掩膜、图层叠加...
  8. java 解析docx_java解析xlsx和docx 文件 | 学步园
  9. winfrom 如何让弹窗不影响主界面_「Win」电脑开机后不给我弹几个广告,我还不太习惯...
  10. idle点开没反应_翟天临、靳东,一个人越是没文化越是喜欢装