dynamics_cast<>
#include <iostream> class A
{
public:
A(){}
~A(){}
virtual int data(){return ;}
};
class B:public A
{
public:
B(){}
~B(){}
int data(){return ;}
}; class C:public A
{
public:
C(){}
~C(){}
int data(){return ;}
}; class D:public C
{
public:
D(){}
~D(){}
int data(){return ;}
}; int main()
{ std::cout<<"dynamic_cast begin \n";
A *a=new A;
B *b=new B;
C *c=new C;
D *d=new D; if(dynamic_cast<B*> (a)) //this will fail 派生类不能指向基类
{
std::cout<<"A *a convert B class ok\n";
} if(dynamic_cast<A*> (b)) // this will be ok 基类指向派生类 ok
{
std::cout<<"B *b convert A class ok\n";
} if(dynamic_cast<C*> (a)) // 派生类不能指向基类
{
std::cout<<"A *a convert C class ok\n";
} if(dynamic_cast<A*> (c)) //c派生类 所以可以被A指向
{
std::cout<<"A *a convert C class ok\n";
} if(dynamic_cast<A*> (d)) // A <- C <- D 基类可以指向派生类 ok
{
std::cout<<"D *d convert A class ok\n";
} if(dynamic_cast<D*> (c)) // 派生类不能指向基类
{
std::cout<<"C *c convert D class ok\n";
} if(dynamic_cast<C*> (d)) // C基类可以指向派生类D ok
{
std::cout<<"D *d convert C class ok\n";
} if(dynamic_cast<D*> (d)) // ok
{
std::cout<<"d *d convert D class ok\n";
} std::cin.get();
return ;
}
dynamics_cast<>的更多相关文章
随机推荐
- 用一段JS代码来比较各浏览器的极限内存与运算速度
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 数位DP bzoj1026
1026: [SCOI2009]windy数 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 5809 Solved: 2589[Submit][Sta ...
- JS(javascript) 将网站加入收藏夹
| 浏览:688 | 更新:2014-09-20 19:39 1 2 3 分步阅读 将网站网址加入收藏夹,方便下次访问! 工具/原料 网址: 电脑. 方法/步骤 //创建加入收藏夹JS函数 < ...
- bzoj4514: [Sdoi2016]数字配对--费用流
看了一眼题目&数据范围,觉得应该是带下界的费用流 原来想拆点变成二分图,能配对的连边,跑二分图,可行性未知 后来看到另外一种解法.. 符合匹配要求的数要满足:质因子的个数相差为1,且两者可整除 ...
- flume+elasticsearch
项目的日志服是使用flume+elasticsearch 但是运维大哥告诉我,经常会大量往外发包,以至流量超标.问我是不是程序有问题.当时我拍着胸膛说:肯定不是.他说,可能是 服务器被攻击了,让我换一 ...
- svn服务配置和日常维护命令
Subversion独立服务和与apache整合服务. 一 .Svn独立服务安装 操作系统: Redhat Linux AS3 AS 4 ContOS AS 4 安装包获取: 下载[url]ht ...
- Android课程---课下练习(表格、线性和相对布局)
1.表格布局 练习代码: <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns: ...
- IOS第九天(3:QQ聊天界面通知的使用)
#import <Foundation/Foundation.h> #import "Person.h" #import "XQCompany.h" ...
- 【iCore3 双核心板】例程十二:通用定时器实验——定时点亮LED
实验指导书及代码包下载: http://pan.baidu.com/s/1kTWAAJ9 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- python中的Queue
一.先说说Queue(队列对象) Queue是python中的标准库,可以直接import 引用,之前学习的时候有听过著名的“先吃先拉”与“后吃先吐”,其实就是这里说的队列,队列的构造的时候可以定义它 ...