新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
dynamic_cast<type-id>(expression)
#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; } 上面兩個錯誤都是,編譯時不報錯,運(yùn)行時報錯. dynamic_cast主要是將指向子類的基類指針轉(zhuǎn)化為子類的指針 轉(zhuǎn)換過程中會檢查目標(biāo)和期望轉(zhuǎn)換的對象是否一致,一致轉(zhuǎn)換 成功,否則失敗,如果轉(zhuǎn)換為指針,則失敗返回NULL,如果是引用失敗 返回bad_cast異常
文章題目:dynamic_cast<type-id>(expression)
標(biāo)題網(wǎng)址:http://fisionsoft.com.cn/article/gedods.html