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

            Gordon.Ma

            近山則志高,臨水而聰慧
            隨筆 - 3, 文章 - 0, 評(píng)論 - 1, 引用 - 0
            數(shù)據(jù)加載中……

            C++關(guān)鍵字

            面試過程中,一些面試官對(duì)C++一些特殊關(guān)鍵字很關(guān)注;
            整理了一些比較有說頭的關(guān)鍵字
            • explicit
            用來聲明構(gòu)造函數(shù),被聲明的構(gòu)造函數(shù)為顯示構(gòu)造函數(shù),不能在隱式轉(zhuǎn)換中使用。
            C++中一個(gè)參數(shù)的構(gòu)造函數(shù)或除第一個(gè)參數(shù)外均有默認(rèn)值的多參構(gòu)造函數(shù),有兩個(gè)作用:1、構(gòu)造對(duì)象;2、默認(rèn)且隱式的類型轉(zhuǎn)換操作符。
             1 class foo
             2 {
             3 public:
             4     explicit foo( int a )
             5         : _member( a )
             6     {}
             7 
             8     int _member;
             9 };
            10 
            11 int bar( const foo & f )
            12 {
            13     return f._member;
            14 }
            15 
            16 bar( 1 ); // 失敗, explicit禁止int到foo的隱式(implicit)類型轉(zhuǎn)換.
            17 
            18 bar( foo( 1 ) ); // 正確, 顯式調(diào)用explicit構(gòu)造函數(shù).
            19 
            20 bar( static_cast<foo>1 ) );  // 正確, 通過static_cast調(diào)用explicit構(gòu)造函數(shù).
            21 
            22 bar( foo( 1.0 ) );  // 正確, 顯式調(diào)用explicit構(gòu)造函數(shù), 參數(shù)自動(dòng)從浮點(diǎn)轉(zhuǎn)換成整型.

            • mutable
            用來聲明一個(gè)成員變量,被mutable聲明的成員變量,可以在被const修飾的成員函數(shù)中修改。
            mutable不可與const、static同時(shí)使用。
             1 class foo
             2 {
             3 public:
             4     foo()
             5         : _member(0)
             6     {}
             7 
             8     void ExChange( int a ) const
             9     {
            10         _member = a;
            11     }
            12 
            13     mutable int _member;
            14 }

            • volatile
            用以聲明一個(gè)變量,被volatile聲明的變量意味著有可能被某些編譯器未知的因素更改,因此編譯器不會(huì)對(duì)其做任何優(yōu)化操作。
            從而可以提供對(duì)特殊地址的穩(wěn)定訪問,多用于嵌入式編程中。
             1 void foo()
             2 {
             3     //volatile int nData = 1;
             4     int nData = 1;
             5 
             6     int nData_b = nData;
             7     printf("nData = %d\n",nData_b);
             8 
             9     // c++嵌入asm參見:http://asm.sourceforge.net/articles/linasm.html
            10     asm("movl $2, -4(%ebp)\n\r"); // 修改變量地址內(nèi)容
            11 
            12     int nData_a = nData;
            13     printf("nData = %d\n",nData_a);
            14 }
            15 
            16 使用volatile輸出:
            17 nData = 1
            18 nData = 2
            19 
            20 不使用volatile輸出為:
            21 nData = 1
            22 nData = 1

            posted on 2012-05-22 15:16 Gordooooon 閱讀(1440) 評(píng)論(1)  編輯 收藏 引用 所屬分類: C/C++

            評(píng)論

            # re: C++關(guān)鍵字  回復(fù)  更多評(píng)論   

            不錯(cuò),最后一個(gè)沒注意過,多多更新。。。
            2012-05-22 19:40 | 鐘謝偉
            一级做a爰片久久毛片16| 久久九九久精品国产免费直播| 亚洲午夜福利精品久久| 一97日本道伊人久久综合影院| 亚洲香蕉网久久综合影视 | 亚洲精品97久久中文字幕无码| 麻豆国内精品久久久久久| 超级97碰碰碰碰久久久久最新| 久久国产色AV免费观看| 国产精品青草久久久久福利99| 一本一本久久a久久精品综合麻豆| 亚洲国产精品久久电影欧美| 久久久久国产精品| 波多野结衣AV无码久久一区| 久久精品视频免费| 性欧美丰满熟妇XXXX性久久久 | 国产成人精品久久一区二区三区av| 久久天天躁狠狠躁夜夜2020老熟妇| 色欲久久久天天天综合网| 久久久久久极精品久久久 | 亚洲国产成人久久综合一区77| 久久精品www人人爽人人| 久久男人中文字幕资源站| 久久精品国产亚洲麻豆| 亚洲av伊人久久综合密臀性色| 少妇久久久久久被弄到高潮| 麻豆精品久久精品色综合| 久久av无码专区亚洲av桃花岛| 久久这里只有精品首页| 久久久久无码精品国产app| 国产精品天天影视久久综合网| 少妇高潮惨叫久久久久久| 久久久久亚洲AV成人网人人网站 | 亚洲综合久久夜AV | 久久精品中文字幕一区| 精品午夜久久福利大片| 久久精品国产99久久无毒不卡| 久久久久久亚洲AV无码专区| 日韩人妻无码一区二区三区久久 | 九九99精品久久久久久| 久久久女人与动物群交毛片 |