使用dynamic_cast转换的一个例子
来源:互联网 发布:怎样查询淘宝店铺贷款 编辑:程序博客网 时间:2024/06/06 04:53
分类: 笔试面试c/c++2013-06-11 03:11 80人阅读 评论(0) 收藏 举报
[cpp] viewplaincopyprint?
- #include
"iostream" - using
namespace std; -
-
- class
A{ - public:virtual
void foo() -
{ -
cout<<"A:foo()\n"; -
} -
void pp() -
{ -
cout<<"A:pp()\n"; -
} - };
- class
B:public A - {
- public:
-
void foo() -
{ -
cout<<"B:foo()\n"; -
} -
void pp() -
{ -
cout<<"B:pp()\n"; -
} -
void fun() -
{ -
cout<<"function in ;B \n" -
} -
-
- };
- void
main() - {
-
B b; -
A *pa=&b; -
pa->foo();//由于存在多态,所以根据指向的类型调用方法,否则根据指针类型调用方法 -
pa->pp();//不存在多态,根据指针类型调用 -
//pa->fun();//出错,无法调用 -
dynamic_cast<B*>(pa)->pp();//运行时动态类型转换,可以指向B的pp() -
dynamic_cast<B*>(pa)->fun();//运行时动态类型转换,可以指向B的fun() -
dynamic_cast<B*>(pa)->foo();//运行时动态类型转换,可以指向B的foo() - }
#include "iostream"using namespace std;class A{public:virtual void foo() { cout<<"A:foo()\n"; } void pp() { cout<<"A:pp()\n"; }};class B:public A{public: void foo() { cout<<"B:foo()\n"; } void pp() { cout<<"B:pp()\n"; } void fun() { cout<<"function in B \n"; }};void main(){ B b; A *pa=&b; pa->foo();//由于存在多态,所以 据指向的类型调用方法,否则 据指针类型调用方法 pa->pp();//不存在多态, 据指针类型调用 //pa->fun();//出错, 法调用 dynamic_cast<B*>(pa)->pp();//运行时动态类型转换,可以指向B的pp() dynamic_cast<B*>(pa)->fun();//运行时动态类型转换,可以指向B的fun() dynamic_cast<B*>(pa)->foo();//运行时动态类型转换,可以指向B的foo()}
0 0
- 使用dynamic_cast转换的一个例子
- 一个简单的例子说明dynamic_cast的作用
- c++类型转换关键字dynamic_cast和static_cast的使用区别
- C++ dynamic_cast转换的弊端
- dynamic_cast 例子
- dynamic_cast 的使用
- dynamic_Cast的使用
- dynamic_cast的使用条件
- 一个经典的行列转换的例子
- Struts2的类型转换的一个例子
- 一个SQL行列转换的例子
- 一个数组使用的例子
- SAOP使用的一个例子
- 使用paste的一个例子
- Boolean 使用的一个例子
- block使用的一个例子
- 使用popen的一个例子
- tasklet使用的一个例子
- 年终总结—花谢花开
- 程序员面试宝典几道题
- 清除整型变量a的bit3
- 采用上下文获取应用程序文件目录
- 设置整型变量a的bit3
- 使用dynamic_cast转换的一个例子
- AndrowListView实现(自定义游戏列表)防止屏幕闪烁,设置分割线android中不推荐的方法,要考虑向下兼容,用了推荐的新方法,可能不兼容旧版本系统的手机
- 给出一个单链表,不知道节点N的值…
- 【转载】关于main函数的(int_argc,…
- C++字符数组越界问题的一个案例分…
- junit学习笔记2
- Android高效加载大图、多图解决方案,有效避免程序OOM
- Go语言并发与并行学习笔记(一)
- 【转载】头文件string与string.h的…