青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

積木

No sub title

  C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
  140 Posts :: 1 Stories :: 11 Comments :: 0 Trackbacks

常用鏈接

留言簿(1)

我參與的團(tuán)隊(duì)

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

說(shuō)明:
      本文來(lái)自CSDN博客:http://blog.csdn.net/goodluckyxl/archive/2005/01/19/259851.aspx




強(qiáng)制轉(zhuǎn)化四種類(lèi)型可能很多人都常常忽略就象我一樣,但是有時(shí)還是比較有用的。不了解的建議看看,一些機(jī)制我也不是十分了解,只是將一些用法寫(xiě)出來(lái)讓大家看看。

強(qiáng)制轉(zhuǎn)化無(wú)論從語(yǔ)法還是語(yǔ)意上看,都是c++中最難看的特征之一。但是基于c風(fēng)格的轉(zhuǎn)化的語(yǔ)義的不明確性及其一些潛在問(wèn)題。強(qiáng)制類(lèi)型轉(zhuǎn)化最終還是被c++接受了。
1.static_cast運(yùn)算符號(hào)
static_cast<T>(e),stroustrup讓我們可以把它看成隱含轉(zhuǎn)換的顯示的逆運(yùn)算。這個(gè)是有一定道理的,基于隱式轉(zhuǎn)化的對(duì)象類(lèi)型我們可以使用static_cast轉(zhuǎn)化運(yùn)算符號(hào)。它是靜態(tài)的檢測(cè),無(wú)法運(yùn)行時(shí)檢測(cè)類(lèi)型,在繼承中尤為突出。
使用范圍
<1>用于所有系統(tǒng)類(lèi)型之間轉(zhuǎn)化,不能用于系統(tǒng)類(lèi)型指針類(lèi)型轉(zhuǎn)化
  double t_d = 0;
int t_i= static_cast<int>(t_d); //是合法的轉(zhuǎn)化
而企圖將double*->int*是不允許的
<2>用于繼承類(lèi)之間的轉(zhuǎn)化(含指針),不能用于其他沒(méi)有隱式轉(zhuǎn)化的對(duì)象類(lèi)型之間的轉(zhuǎn)化
繼承舉例:
class x
{
};
class y: public x
{
};
使用:x t_o_x;
y t_o_y = static_cast<y>(t_o_x); //x* y*轉(zhuǎn)化也可以進(jìn)行因?yàn)閤,y繼承關(guān)
//系,類(lèi)型可以自動(dòng)隱式轉(zhuǎn)化使用
   隱式轉(zhuǎn)化舉例:
class x
{
};
class y
{

public:
    y( x i_x ) {}
};
    x t_o_x;
     y t_o_y = static_cast<y>(t_o_x); //大家看到y(tǒng)構(gòu)造函數(shù)可以對(duì)于x類(lèi)型隱式轉(zhuǎn)化
//所以可以將x->y,如果企圖將y->x會(huì)報(bào)錯(cuò)
2.reinterpret_cast 運(yùn)算
主要用于對(duì)于類(lèi)型指針類(lèi)型的強(qiáng)制轉(zhuǎn)化,some_type* -> special_type*這樣轉(zhuǎn)化,類(lèi)型信息可以是不完全的。它允許將任意指針轉(zhuǎn)化到其他類(lèi)型指針,也允許任意整數(shù)類(lèi)型到任意指針類(lèi)型轉(zhuǎn)化(BT)。這樣導(dǎo)致的結(jié)果是極其不安全的,不能安全的應(yīng)用于其他目的,除非轉(zhuǎn)化到原來(lái)類(lèi)型。
<1> 使用所有整形可以轉(zhuǎn)化為任意類(lèi)型的指針(指針是4字節(jié)的long的東東,那么機(jī)器就認(rèn)為同類(lèi)型就是可以轉(zhuǎn)化)
int c;
x* p = reinterpret_cast<x*>(c); //x是自定義的任意類(lèi)型,當(dāng)然包括系統(tǒng)類(lèi)型
<2> 可以對(duì)于任意類(lèi)型指針之間轉(zhuǎn)化
y* c;
x* p = reinterpret_cast<x*>(c);//x,y代表所有自定義或系統(tǒng)類(lèi)型
大家可以看到reinterpret_cast的轉(zhuǎn)化是極度的不負(fù)責(zé)任的,他只管轉(zhuǎn)化不檢測(cè)是否可以轉(zhuǎn)化。
<3> const_cast運(yùn)算符號(hào)
這個(gè)很簡(jiǎn)單從名字大家可以看出來(lái),僅僅為了去掉或著加上const修飾符號(hào)。但是對(duì)于本身定義時(shí)為const的類(lèi)型,即使你去掉const性,在你操作這片內(nèi)容時(shí)候也要小心,只能r不能w操作,否則還是會(huì)出錯(cuò)。
const char* p = "123";
char* c = const_cast<char*>(p);
c[0] = 1;  //表面上通過(guò)編譯去掉了const性,但是操作其地址時(shí)系統(tǒng)依然不允許這
//么做。這是一個(gè)漏洞吧
<4> dynamic_cast運(yùn)算符號(hào)
Scott Mayers將其描述為用來(lái)執(zhí)行繼承體系中:安全的向下轉(zhuǎn)型或者跨系轉(zhuǎn)型動(dòng)作。也就是說(shuō)你可以,用dynamic_cast將 指向base class的指針或引用轉(zhuǎn)型為 指向子類(lèi)的對(duì)象的指針或引用。
class B {};  //polymorphic類(lèi)型含virtual才能dynamic_cast
class D: public B {}
void f( B* pb )
{
    D* pd1 = dynamic_cast<D*>(pb);//如果pb為d類(lèi)型正確返回,如果不是返回0
    D* pd2 = static_cast<D*>(pb); //不管怎么樣都返回指針有可能指向不合適的對(duì)
//象,因?yàn)閟tatic僅僅靜態(tài)檢測(cè),不能得到運(yùn)
//行時(shí)對(duì)象的信息是否真正為D類(lèi)型
}

反正大家在使用知道怎么用就ok了,c++強(qiáng)制轉(zhuǎn)化在模板中還是非常有用的,其他時(shí)候本人也喜歡用c的轉(zhuǎn)化方便。^_^

posted on 2011-06-24 12:30 Jacc.Kim 閱讀(315) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): VC / C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            在线不卡免费欧美| 欧美在线免费视频| 欧美1区2区3区| 老妇喷水一区二区三区| 亚洲国产精品一区二区尤物区| 毛片精品免费在线观看| 蜜臀av国产精品久久久久| 亚洲毛片视频| 亚洲特级片在线| 国产一区二区三区在线免费观看 | 国产一区二区无遮挡| 日韩网站免费观看| 国产精品sm| 久久成人人人人精品欧| 国产精品成人va在线观看| 久久久噜噜噜久噜久久| 欧美久久久久久久久| 午夜久久久久久| 久久久久久尹人网香蕉| 日韩网站在线观看| 欧美一区2区三区4区公司二百| 亚洲人成免费| 亚洲欧美综合网| 亚洲欧洲一级| 欧美成熟视频| 欧美一区二区女人| 欧美激情免费在线| 麻豆成人在线| 亚洲福利小视频| 欧美18av| 久久免费精品日本久久中文字幕| 欧美成人在线网站| 欧美小视频在线| 亚洲桃花岛网站| 久久爱91午夜羞羞| 国内精品一区二区三区| 9久草视频在线视频精品| 亚洲成人在线免费| 午夜精品视频在线| 亚洲专区国产精品| 蜜臀久久99精品久久久画质超高清 | 亚洲一区二区精品在线| 久久福利资源站| 亚洲一级免费视频| 国产精品日韩高清| 亚洲经典自拍| 亚洲免费网址| 中文欧美日韩| 免费永久网站黄欧美| 亚洲欧洲一二三| 午夜欧美电影在线观看| 国产亚洲在线| 欧美成人综合| 亚洲欧美日韩精品在线| 久久人人97超碰精品888| 亚洲激情在线激情| 欧美电影美腿模特1979在线看| 亚洲毛片在线观看| 一区二区三区四区五区精品视频| 欧美成人精品一区二区三区| 99国产一区二区三精品乱码| 久久激情中文| 国产综合色精品一区二区三区| 久久尤物视频| 亚洲一二三四区| 欧美18av| 久久se精品一区二区| 亚洲精品久久久久久久久久久久| 蜜桃av综合| 亚洲欧美久久久| 欧美激情精品久久久六区热门| 在线观看亚洲视频| 国产精品久久国产三级国电话系列 | 亚洲精品黄色| 国产一区二区精品在线观看| 欧美另类videos死尸| 欧美一区二区女人| 中文网丁香综合网| 欧美一级在线亚洲天堂| 国产精品欧美日韩久久| 欧美成人午夜| 久久精品伊人| 亚洲东热激情| 亚洲综合社区| 亚洲日本理论电影| 一区一区视频| 欧美国产三区| 亚洲香蕉视频| 99精品视频一区| 亚洲国产合集| 欧美成年网站| 久久综合精品一区| 一本色道久久精品| 国产偷国产偷亚洲高清97cao| 久久精品亚洲热| 亚洲欧美综合v| 亚洲午夜精品17c| av成人免费观看| 99精品视频免费全部在线| 亚洲激情小视频| 亚洲福利在线观看| 欧美激情精品久久久| 牛牛精品成人免费视频| 久久综合色综合88| 久久综合给合久久狠狠色| 午夜亚洲性色视频| 欧美在线国产| 久久爱www久久做| 久久精品夜色噜噜亚洲a∨| 在线看片成人| 亚洲第一区在线观看| 在线看日韩av| 亚洲日本aⅴ片在线观看香蕉| 亚洲激情一区二区三区| 亚洲日本欧美| 99精品久久免费看蜜臀剧情介绍| 亚洲毛片av在线| 亚洲视屏一区| 亚洲女人天堂成人av在线| 亚洲精品免费网站| 99国内精品久久| 亚洲自拍偷拍一区| 久久精品国产第一区二区三区最新章节| 亚洲欧美日韩精品久久亚洲区 | 欧美波霸影院| 欧美高清视频一二三区| 欧美日韩一区二区三区免费看| 久久久久久久综合色一本| 理论片一区二区在线| 欧美激情欧美激情在线五月| 欧美天堂亚洲电影院在线观看 | 麻豆精品视频| 亚洲激情图片小说视频| 中日韩高清电影网| 久久精品国产清高在天天线 | 亚洲日本aⅴ片在线观看香蕉| 日韩视频在线播放| 亚洲欧美日产图| 蜜臀91精品一区二区三区| 久久久999精品| 欧美黑人在线播放| 中日韩午夜理伦电影免费| 久久国产婷婷国产香蕉| 欧美激情一区二区三区在线视频观看| 国产精品mv在线观看| 一区在线视频观看| 亚洲自拍电影| 欧美sm重口味系列视频在线观看| 亚洲毛片av在线| 久久久精品性| 国产精品久久久久久亚洲调教| 国产精品成人午夜| 亚洲第一免费播放区| 亚洲影院高清在线| 欧美福利小视频| 香蕉久久a毛片| 欧美人与禽猛交乱配| 伊人成人在线| 午夜欧美精品| 亚洲美女精品久久| 久久精品夜夜夜夜久久| 国产精品对白刺激久久久| 亚洲电影天堂av| 久久精品理论片| 亚洲小说欧美另类婷婷| 欧美电影免费观看大全| 激情伊人五月天久久综合| 亚洲欧美成人一区二区在线电影| 欧美国产激情| 欧美在线视频一区二区三区| 久久影院午夜片一区| 国产精品一区毛片| 曰本成人黄色| 久久久99爱| 午夜精品一区二区三区电影天堂| 欧美日韩一区二区三区在线观看免| 在线观看日韩www视频免费| 欧美在线观看天堂一区二区三区 | 久久久久久久91| 国产视频观看一区| 欧美一区二区在线| 亚洲视频在线播放| 欧美新色视频| 中日韩美女免费视频网址在线观看| 欧美激情精品久久久久久久变态 | 亚洲国产成人高清精品| 久久久久久久久久久成人| 国产精品网站在线观看| 亚洲欧美日韩精品久久久久| 99精品视频免费观看| 欧美精品国产一区二区| 亚洲精品偷拍| 亚洲精品日日夜夜| 欧美日韩精品一区二区三区四区| 国产日本欧美视频| av不卡在线观看| 日韩亚洲欧美精品| 欧美亚州在线观看| 性欧美videos另类喷潮| 亚洲欧美日韩精品久久久|