C++dynamic_cast
2014-04-03 14:57
253 查看
#include <iostream> #include <string> using namespace std; class A { public: virtual void foo() {cout << "A foo" << endl; } void pp() {cout << "A PP" << endl;} }; class B:public A { public: void foo() { cout << "B foo" << endl;} void pp() { cout << "B PP" << endl;} void FunctionB() { cout << "Excute FunctionB! " << endl;} }; int main() { B b; A *pa = &b; pa->foo(); // 多态, 调用B::foo() pa->pp(); // 调用A::pp() (dynamic_cast<B*>(pa))->FunctionB(); (dynamic_cast<B*>(pa))->foo();//调试运行结果与<<程序员面试宝典(第四版)>> P167解释一样! (dynamic_cast<B*>(pa)) 返回空指针 (dynamic_cast<B*>(pa))->pp(); (*pa).foo();//调用B::foo() //调试运行结果与<<程序员面试宝典(第四版)>> P168解释不一样! return 0; }
相关文章推荐
- 浅议 Dynamic_cast 和 RTTI
- POJ1481_The die is cast(DFS+DFS)
- java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String
- boost lexical_cast
- C++中的static_cast,dynamic_cast,const_cast,reinterpret_cast
- 【C++专题】static_cast, dynamic_cast, const_cast探讨
- java.lang.ClassCastException: android.app.Application
- java.lang.ClassCastException: android.content.res.XmlBlock$Parser cannot be cast to android.view.ani
- C++ this与const,const_cast,static_cast的关系
- static_cast的一个用法
- c++强制类型转换:dynamic_cast、const_cast 、static_cast、reinterpret_cast
- static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较
- LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
- Xcode更新到5.1,"Cast from pointer to smaller type 'int' loses information” in EAGLView.mm
- 强制转换函数(const_cast,reinterpret_cast,static_cast,dynamic_cast)
- ClassCastException深入分析
- error : comparison of distinct pointer types lacks a cast
- 百度地图开发中的java.lang.ClassCastException解决方法及定位源码
- static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较
- hibernate 多表联合查询出现ava.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to XX