博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 'dynamic_cast' and Java 'instanceof' 使用对比
阅读量:5887 次
发布时间:2019-06-19

本文共 679 字,大约阅读时间需要 2 分钟。

 

在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
(a)) { // Process B } if (C *c = dynamic_cast
(a)) { // Process C }}

 

转载地址:http://vmrix.baihongyu.com/

你可能感兴趣的文章
策略模式简介
查看>>
UIViewController中loadView的用法(应当注意的几点)
查看>>
POJ NOI0105-42 画矩形
查看>>
Java 数组在内存中的结构
查看>>
《关爱码农成长计划》第一期报告
查看>>
entity framework 6 通用数据类
查看>>
读取FTP上的excel文件,并写入数据库
查看>>
vs2008快捷键极其技巧 转载
查看>>
window 7上安装Visual Studio 2017失败的解决方法
查看>>
JavaScript 正整数正则表达式
查看>>
单元测试之Stub和Mock
查看>>
bash:command not found
查看>>
Systemd 基础(转)
查看>>
MySQL Replicationation基础
查看>>
武汉科技大学ACM :1009: 华科版C语言程序设计教程(第二版)例题4.18
查看>>
linux系统用户以及用户组管理
查看>>
网络编程(转发自“软件思维”)
查看>>
Mysql binlog 安全删除
查看>>
小a的轰炸游戏 (差分)
查看>>
node.js 利用流实现读写同步,边读边写
查看>>