从品牌网站建设到网络营销策划,从策略到执行的一站式服务
#includeusing namespace std; #include class A{ public: virtual void foo(void){} }; class B:public A{ void foo(void){} }; class C:public A{ void foo(void ){} }; int main(void){ B b; A* pa= &b; B* pb = dynamic_cast(pa);//pa是指向B类型的基类指针,OK //C* pc = dynamic_cast(pa); //pa不是指向C类型的基类指针,error B b1; A& ra = b1; B& b2 = dynamic_cast(ra); //C& c1 = dynamic_cast (ra);error return 0; } 上面两个错误都是,编译时不报错,运行时报错. dynamic_cast主要是将指向子类的基类指针转化为子类的指针 转换过程中会检查目标和期望转换的对象是否一致,一致转换 成功,否则失败,如果转换为指针,则失败返回NULL,如果是引用失败 返回bad_cast异常
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图