• <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>

            c++中explict關(guān)鍵字的說(shuō)明和使用

            先看下面這一個(gè)簡(jiǎn)單的代碼吧

             1 #include <iostream>
             2 using namespace std;
             3 class my
             4 {
             5 private:
             6     int t;
             7 public:
             8     my(){};
             9     my(int i):t(i){};
            10     int get()
            11     {
            12         return t;
            13     }
            14     void print(my d)
            15     {
            16         cout<<d.get()<<endl;
            17     }
            18 };
            19 
            20 int main()
            21 {
            22     my t;
            23     int i=3;
            24     t.print(i);
            25     return 0;
            26 }

            main函數(shù)中t.print(i);的調(diào)用,my類里面print函數(shù)接受的數(shù)據(jù)類型的my,不是int,但這段程序仍然能夠正常運(yùn)行,是因?yàn)閙y類里面存在一個(gè)只有一個(gè)形參的構(gòu)造函數(shù)。

            當(dāng)在一個(gè)需要my類型對(duì)象的地方(比如print函數(shù),就需要一個(gè)my類型對(duì)象),但是如果卻沒(méi)有給一個(gè)my類型對(duì)象,給了一個(gè)其他類型的對(duì)象,比如int,那么這個(gè)時(shí)候就會(huì)看這個(gè)類有沒(méi)有定義一個(gè)只接受一個(gè)參數(shù)的構(gòu)造函數(shù),而且這個(gè)形參必須是int,然后構(gòu)造出一個(gè)my類型臨時(shí)對(duì)象,再把這個(gè)臨時(shí)對(duì)象給需要my類對(duì)象的地方,完成一種隱式的轉(zhuǎn)換。
            注意:如果這個(gè)類有一個(gè)接受一個(gè)參數(shù)的構(gòu)造函數(shù),但是這個(gè)參數(shù)的類型比如是string,這個(gè)隱式轉(zhuǎn)換肯定就不會(huì)發(fā)生了,編譯時(shí)會(huì)提示錯(cuò)誤。

            總之,隱式轉(zhuǎn)換會(huì)發(fā)生在,本來(lái)需要一個(gè)這種類對(duì)象的時(shí)候,卻給了一個(gè)其他的數(shù)據(jù)類型,而且類也恰好有一個(gè)只接受一個(gè)這種數(shù)據(jù)類型參數(shù)的構(gòu)造函數(shù),就會(huì)先調(diào)用這個(gè)構(gòu)造函數(shù)生成一個(gè)臨時(shí)對(duì)象,接著將這臨時(shí)對(duì)象用于需要這種類對(duì)象的地方。

            但是很多時(shí)候,這種隱式轉(zhuǎn)換會(huì)帶來(lái)很大的麻煩,因此如果自己定義的類中,有一個(gè)只接受一個(gè)參數(shù)的構(gòu)造函數(shù),除非有一個(gè)好理由允許構(gòu)造函數(shù)被用于隱式類型轉(zhuǎn)換,否則那么就要在這個(gè)構(gòu)造函數(shù)前面加一個(gè)關(guān)鍵詞 explicit,表明不會(huì)發(fā)生隱式轉(zhuǎn)換。

            posted on 2012-09-19 18:15 古月 閱讀(651) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C/C++

            <2014年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            文章檔案

            C++/C

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            蜜桃麻豆www久久国产精品| 青青青青久久精品国产h久久精品五福影院1421 | 亚洲国产精品高清久久久| 国内精品久久久久久久97牛牛| 久久久噜噜噜久久熟女AA片| 久久国产香蕉视频| 精品多毛少妇人妻AV免费久久| 99久久精品影院老鸭窝| 亚洲一区精品伊人久久伊人 | 亚洲精品国精品久久99热一 | 精品国产婷婷久久久| 久久婷婷国产剧情内射白浆| 久久午夜无码鲁丝片午夜精品| 久久久久亚洲av成人网人人软件 | 久久人人爽人人爽人人av东京热| 国内精品久久久久| 精品无码久久久久国产| 久久香蕉国产线看观看精品yw| 久久无码AV中文出轨人妻| 久久人人爽人人爽AV片| 女同久久| 日韩人妻无码一区二区三区久久 | 久久综合一区二区无码| 久久精品人妻一区二区三区| 久久国产成人午夜AV影院| 国产午夜精品理论片久久| 久久精品无码一区二区app| 久久天天躁狠狠躁夜夜2020老熟妇 | 亚洲国产另类久久久精品| 久久夜色精品国产噜噜噜亚洲AV | 久久午夜福利电影| 人妻丰满AV无码久久不卡| 99999久久久久久亚洲| 香蕉99久久国产综合精品宅男自| 日韩精品久久久久久久电影| 国产精品无码久久综合| 久久综合久久鬼色| 日本加勒比久久精品| 久久免费高清视频| 亚洲精品蜜桃久久久久久| 国产高潮国产高潮久久久91|