亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++中的強制類型轉換const_cast

2019-11-06 07:30:10
字體:
來源:轉載
供稿:網友
C++提供了四個轉換運算符:const_cast <new_type> (exPRession)static_cast <new_type> (expression)reinterpret_cast <new_type> (expression)dynamic_cast <new_type> (expression)它們有著相同的結構,看起來像是模板方法。這些方法就是提供給開發者用來進行指針和引用的轉換的。用法:const_cast<type_id> (expression)該運算符用來修改類型的const或volatile屬性。除了const 或volatile修飾之外, type_id和expression的類型是一樣的。一、常量指針被轉化成非常量指針,并且仍然指向原來的對象;二、常量引用被轉換成非常量引用,并且仍然指向原來的對象;type_id 必須為指針或引用static_cast < type-id > ( expression )說明:該運算符把expression轉換為type-id類型,但沒有運行時類型檢查來保證轉換的安全性static_cast和reinterpret_cast的區別主要在于多重繼承,比如class A {    public:    int m_a;};class B {    public:    int m_b;};class C : public A, public B {};那么對于以下代碼:C c;printf("%p, %p, %p", &c, reinterpret_cast<B*>(&c), static_cast <B*>(&c));前兩個的輸出值是相同的,最后一個則會在原基礎上偏移4個字節,這是因為static_cast計算了父子類指針轉換的偏移量,并將之轉換到正確的地址(c里面有m_a,m_b,轉換為B*指針后指到m_b處),而reinterpret_cast卻不會做這一層轉換。因此, 你需要謹慎使用 reinterpret_cast.dynamic_cast <type-id> (expression)該運算符把expression轉換成type-id類型的對象。Type-id 必須是類的指針、類的引用或者void*;如果 type-id 是類指針類型,那么expression也必須是一個指針,如果 type-id 是一個引用,那么 expression 也必須是一個引用。dynamic_cast運算符可以在執行期決定真正的類型。如果 downcast 是安全的(也就說,如果基類指針或者引用確實指向一個派生類對象)這個運算符會傳回適當轉型過的指針。如果 downcast 不安全,這個運算符會傳回空指針(也就是說,基類指針或者引用沒有指向一個派生類對象)。dynamic_cast主要用于類層次間的上行轉換和下行轉換,還可以用于類之間的交叉轉換。在類層次間進行上行轉換時,dynamic_cast和static_cast的效果是一樣的;在進行下行轉換時,dynamic_cast具有類型檢查的功能,比static_cast更安全。classB{public:int m_iNum;virtual void foo();};classD:publicB{public:char* m_szName[100];};void func(B* pb){D* pd1=static_cast<D*>(pb);D* pd2=dynamic_cast<D*>(pb);}在上面的代碼段中,如果 pb 指向一個 D 類型的對象,pd1 和 pd2 是一樣的,并且對這兩個指針執行 D 類型的任何操作都是安全的;但是,如果 pb 指向的是一個 B 類型的對象,那么 pd1 將是一個指向該對象的指針,對它進行 D 類型的操作將是不安全的(如訪問 m_szName),而 pd2 將是一個空指針。另外要注意:B 要有虛函數,否則會編譯出錯;static_cast則沒有這個限制。這是由于運行時類型檢查需要運行時類型信息,而這個信息存儲在類的虛函數表中,只有定義了虛函數的類才有虛函數表,沒有定義虛函數的類是沒有虛函數表的。另外,dynamic_cast還支持交叉轉換(cross cast)。如下代碼所示:classA{public:intm_iNum;virtual void f(){}};class B:public A{};class D:public A{};void foo(){B*pb=newB;pb->m_iNum=100;//D*pd1=static_cast<D*>(pb);//compile errorD*pd2=dynamic_cast<D*>(pb);//pd2isNULLdelete pb;}在函數foo中,使用static_cast進行轉換是不被允許的,將在編譯時出錯,而使用 dynamic_cast的轉換則是允許的,結果是空指針。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美极品美女电影一区| 亚洲欧美色婷婷| 亚洲理论片在线观看| 欧美最顶级的aⅴ艳星| 亚洲视屏在线播放| 欧美中文在线观看| 亚洲第一国产精品| 亚洲视屏在线播放| 不卡中文字幕av| 中文字幕日韩免费视频| 亚洲深夜福利视频| 国产盗摄xxxx视频xxx69| 亚洲激情自拍图| 欧美极品美女视频网站在线观看免费| 性欧美亚洲xxxx乳在线观看| 色老头一区二区三区在线观看| 亚洲人午夜精品| 国产精品激情自拍| 欧美日韩性视频在线| 久久久久免费精品国产| 91香蕉嫩草影院入口| 欧美日韩免费一区| 欧美在线视频在线播放完整版免费观看| 中文字幕亚洲欧美日韩高清| 精品日本高清在线播放| 国产精品视频26uuu| 日韩高清电影好看的电视剧电影| 欧美一级大片在线观看| 欧美国产日韩二区| 亚洲大胆人体在线| 国产成人精品久久二区二区| 国产精品扒开腿做爽爽爽视频| 国产一区二区三区在线免费观看| 国产精品视频久久久久| 亚洲国产精品久久久久秋霞蜜臀| 欧美日韩国产中字| 亚洲人成电影网站色…| 中文字幕日韩av综合精品| 一区二区成人精品| 成人性生交大片免费观看嘿嘿视频| 久久精品国产99国产精品澳门| 992tv在线成人免费观看| 亚洲免费伊人电影在线观看av| 亚洲一区二区久久久久久| 亚洲成人黄色网| 国内精品视频一区| 欧美激情视频在线观看| 黑人巨大精品欧美一区免费视频| 性金发美女69hd大尺寸| 国产精自产拍久久久久久| 国产亚洲视频在线观看| 国产精品极品尤物在线观看| 5566日本婷婷色中文字幕97| 欧日韩在线观看| 97超视频免费观看| 久久精品视频网站| 韩国日本不卡在线| 日韩精品中文字幕在线播放| 国产欧美中文字幕| 社区色欧美激情 | 精品美女永久免费视频| 成人午夜两性视频| 欧美精品18videos性欧美| 久久影视电视剧免费网站清宫辞电视| 国产欧美日韩91| 国模精品一区二区三区色天香| 成人免费观看49www在线观看| 亚洲人成绝费网站色www| 国产精品18久久久久久首页狼| 热久久免费国产视频| 欧美激情中文字幕乱码免费| 欧美区在线播放| 欧美性猛交xxxx免费看漫画| 亚洲jizzjizz日本少妇| 国产精品偷伦视频免费观看国产| 亚洲电影成人av99爱色| 欧美午夜www高清视频| 欧美精品一本久久男人的天堂| 日韩av三级在线观看| 韩国19禁主播vip福利视频| 亚洲无亚洲人成网站77777| 精品国产区一区二区三区在线观看| 久久精品国产精品| 午夜精品视频网站| 69av成年福利视频| 国自产精品手机在线观看视频| 国产在线视频一区| 国产精品一区二区三区毛片淫片| 色噜噜狠狠狠综合曰曰曰88av| 亚洲国产97在线精品一区| 亚洲天堂av在线免费观看| 日本免费久久高清视频| 2020久久国产精品| 欧美成人中文字幕| 欧美区二区三区| 精品久久国产精品| 日韩av影片在线观看| 欧美在线国产精品| 日本最新高清不卡中文字幕| 亚洲美女av电影| 国产精品日韩专区| 国产玖玖精品视频| 亚洲成人教育av| 久久亚洲影音av资源网| 欧美中文字幕精品| 亚洲天堂视频在线观看| 热re99久久精品国产66热| 亚洲成人免费网站| 黄网站色欧美视频| 国产视频精品一区二区三区| 成人免费观看网址| 久久久精品一区二区| 中文字幕国产亚洲2019| 神马久久桃色视频| 国产精品成人aaaaa网站| 午夜精品一区二区三区在线视频| 色噜噜国产精品视频一区二区| 日韩高清不卡av| 神马国产精品影院av| 91精品久久久久久久久中文字幕| 精品无人国产偷自产在线| 成人免费网站在线看| 久久久久国产视频| 98精品国产自产在线观看| 伊人久久综合97精品| 国产午夜精品免费一区二区三区| 国产精品久久久久久久久久久不卡| 亚洲综合在线中文字幕| 久久久久久久一区二区三区| 91中文在线观看| 久久人91精品久久久久久不卡| 日韩电影中文字幕在线观看| 欧美成人中文字幕| 欧美亚洲一级片| 久久精品亚洲一区| 亚洲欧美日韩久久久久久| 精品视频在线导航| 97精品一区二区三区| 欧美一区二区影院| 日韩成人免费视频| 欧美色图在线视频| 欧美午夜视频一区二区| 国产亚洲精品成人av久久ww| 国产精品福利在线| 国产在线观看91精品一区| 国产最新精品视频| 国产精品露脸av在线| 欧美一区三区三区高中清蜜桃| 成人精品一区二区三区电影免费| 日韩精品久久久久久久玫瑰园| 国产视频精品久久久| 亚洲成人黄色网| www.日韩免费| 欧美精品免费在线| 欧美裸体男粗大视频在线观看| 九九精品视频在线观看| 亚洲高清久久网| 91美女片黄在线观| 国产精品老女人视频| 97精品国产97久久久久久春色| 伊人久久久久久久久久久| 91探花福利精品国产自产在线| 最新69国产成人精品视频免费| 亚洲欧美一区二区三区情侣bbw|