• <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++ Primer 學(xué)習(xí)筆記二

            A        .函數(shù)探幽:

            1.  要使用內(nèi)聯(lián)函數(shù)需要做:a. 在函數(shù)聲明之前加上關(guān)鍵字inline;  b.在函數(shù)定義前面加上關(guān)鍵字inline; 內(nèi)聯(lián)函數(shù)的原始實(shí)現(xiàn)是宏!

            2.  聲明引用時必須進(jìn)行初始化! (const指針也是在創(chuàng)建時進(jìn)行初始化)

            3.  如何給參數(shù)設(shè)置默認(rèn)值?必須通過函數(shù)原型。因?yàn)榫幾g器是通過查看原型來了解函數(shù)所使用的參數(shù)數(shù)目,因此函數(shù)原型也必須將可能的默認(rèn)參數(shù)告知程序。必須從右向左添加默認(rèn)值。

            4.  函數(shù)在重載時,編譯器在檢查函數(shù)特征標(biāo)(參數(shù)類型)時,將把類型引用和類型本身視為同一個特征標(biāo)。匹配函數(shù)時,不區(qū)分const和非const變量。

            B .    內(nèi)存模型和名稱空間:

            1.  不要將函數(shù)定義或變量聲明放到頭文件中。為了避免在不知情的情況下將同一頭文件包含多次,可以使用預(yù)處理器編譯指令#ifndef,代碼為:#ifndef COORDIN_H_       #define COORDIN_H_   ... #endif

            2.  在c++中,可以使用register來聲明局部變量,作用域?yàn)榫植浚瑳]有鏈接性。因?yàn)榇鎯υ诩拇嫫髦校瑳]有內(nèi)存地址,因此不能使用地址操作符。register int x;

            3.  靜態(tài)存儲持續(xù)性變量(在整個程序執(zhí)行期間存在)有3種鏈接性:外部鏈接性、內(nèi)部鏈接性和無鏈接性。下面給出代碼:

                      int global=1000;  //靜態(tài)持續(xù)變量,外鏈接,在代碼塊的外面聲明
                      static int one_file=50;   //靜態(tài)持續(xù)變量,內(nèi)聯(lián)接,代碼快外面聲明,并使用static限定符
                      int main()
                      {...}

                      void func1(int n)
                      {
                            static int count=0;   //靜態(tài)持續(xù)變量,沒有鏈接性,只能在func1種使用。在代碼塊內(nèi)聲明,使用static限定符
                       }

                      所有的靜態(tài)持續(xù)變量都有兩個初始化特征:a.未被初始化的靜態(tài)變量的所有位都被設(shè)為0;b.只能用常量表達(dá)式來初始化靜態(tài)變量。

                      對于外部鏈接性變量,有且僅有一個文件中包含了該變量的外部定義,其他文件要使用該變量,必須在引用聲明中使用extern.

            4.  c++不允許在一個函數(shù)中定義另外一個函數(shù),因此所有函數(shù)的存儲持續(xù)性都自動為靜態(tài)的,即在整個程序執(zhí)行期間都一致存在。默認(rèn)情況下,函數(shù)的鏈接性為外部的。可以用static將函數(shù)的鏈接性設(shè)置為內(nèi)部的。

            5.   在c++中,同一個名稱可能對應(yīng)多個函數(shù),在編譯期間,必須為這些函數(shù)提供不同的符號名稱。例如可以將spiff(int)轉(zhuǎn)換為_spiff_i,而將spiff(double,double);轉(zhuǎn)換為_spiff_d_d,這稱為c++語言鏈接。而extern "c" void spiff(int); 表示以c的語言鏈接性來查找函數(shù)。

            6.  using聲明:假如存在一個名稱空間 namespace Jill{double bucket(double n){...}   double fetch;} 則using Jill::fetch;就是一個using聲明。using聲明在函數(shù)內(nèi)時,則聲明的變量是局部的,如果聲明在函數(shù)外,則聲明的變量是全局的。

            7.  using聲明使得一個名稱可用,而using編譯指令使得所有的名稱都可用。 using namespace Jill; 不要在頭文件中使用using編譯指令

            C       .對象和類:

            1.  不用在類中使用private,這是類對象的默認(rèn)訪問控制。類和結(jié)構(gòu)的唯一區(qū)別在于,結(jié)構(gòu)的默認(rèn)訪問類型是public的。

            2.  cout和cerr的區(qū)別:cout對應(yīng)于標(biāo)準(zhǔn)輸出流,cerr對應(yīng)于標(biāo)準(zhǔn)錯誤流; cout可以重定向,cerr不可以;cout要分配緩沖,因此cerr比cout快;它們的 標(biāo)準(zhǔn)默認(rèn)輸出設(shè)備都是屏幕。

            3.  類的每個對象都有自己的存儲空間,用于存儲其內(nèi)部變量;但同一個類的所有對象共享同一組類方法,即每種方法只有一個副本。

            4.  默認(rèn)構(gòu)造函數(shù)是在未提供顯式的初始化值時,被用來創(chuàng)建對象的構(gòu)造函數(shù)。例如:Stock stock1; 當(dāng)且僅當(dāng)沒有定義任何構(gòu)造函數(shù)時,編譯器才會提供默認(rèn)構(gòu)造函數(shù)。為雷定義了構(gòu)造函數(shù)后,程序員就必須為它提供默認(rèn)構(gòu)造函數(shù)。否則Stock stock1;這樣的聲明將出錯。

            5.  const成員函數(shù):void show()const; 其對應(yīng)的定義為void Stock::show()const; 表明在這個類方法中不會修改調(diào)用對象。

            6.  使類中的某個變量為整個類都可用。a.可以在類中聲明一個枚舉。在類中聲明的枚舉的作用域?yàn)檎麄€類,例如: class Stock{ private:    enum{Len=30};};   所有的對象都不包含枚舉!!!           b.使用static: class Stack{ private:  static const int Len=30;}; 這將創(chuàng)建一個Len常量,該常量不存儲在對象中,而與其他的靜態(tài)變量存儲在一起!!

            posted on 2008-03-11 13:49 弱水一瓢 閱讀(233) 評論(0)  編輯 收藏 引用 所屬分類: C++ Primer

            <2025年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導(dǎo)航

            統(tǒng)計(jì)

            文章分類

            最新評論

            狠狠色丁香久久综合婷婷| 午夜不卡888久久| 亚洲午夜久久久| 国产精品久久久久蜜芽| 久久精品国产亚洲AV无码麻豆| 成人国内精品久久久久一区| 久久亚洲国产精品123区| 亚洲精品无码久久一线| 国产高潮国产高潮久久久91| 久久精品国产免费观看| a级毛片无码兔费真人久久| 性高朝久久久久久久久久| 精品久久久久久中文字幕人妻最新| 91久久成人免费| 久久久久AV综合网成人| 久久涩综合| 99久久免费国产精精品| 777午夜精品久久av蜜臀| 狠狠色丁香婷婷久久综合不卡| 一级女性全黄久久生活片免费| 97久久精品无码一区二区天美| 国产aⅴ激情无码久久| 国产伊人久久| 99久久成人18免费网站| 97久久精品国产精品青草| 久久无码AV中文出轨人妻| 国产精品无码久久四虎| 国产精品久久久久久搜索 | 亚洲人成伊人成综合网久久久| 99久久精品免费国产大片| 久久久久久九九99精品| 久久狠狠爱亚洲综合影院| 久久婷婷是五月综合色狠狠| 看全色黄大色大片免费久久久| 99久久精品国产综合一区| 狠狠色婷婷久久一区二区三区| 亚洲精品午夜国产VA久久成人| 国产精品久久新婚兰兰| 精品久久久无码人妻中文字幕| 久久毛片一区二区| 狠狠色丁香久久婷婷综合蜜芽五月|