• <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 學習筆記二

            A        .函數探幽:

            1.  要使用內聯函數需要做:a. 在函數聲明之前加上關鍵字inline;  b.在函數定義前面加上關鍵字inline; 內聯函數的原始實現是宏!

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

            3.  如何給參數設置默認值?必須通過函數原型。因為編譯器是通過查看原型來了解函數所使用的參數數目,因此函數原型也必須將可能的默認參數告知程序。必須從右向左添加默認值。

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

            B .    內存模型和名稱空間:

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

            2.  在c++中,可以使用register來聲明局部變量,作用域為局部,沒有鏈接性。因為存儲在寄存器中,沒有內存地址,因此不能使用地址操作符。register int x;

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

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

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

                      所有的靜態持續變量都有兩個初始化特征:a.未被初始化的靜態變量的所有位都被設為0;b.只能用常量表達式來初始化靜態變量。

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

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

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

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

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

            C       .對象和類:

            1.  不用在類中使用private,這是類對象的默認訪問控制。類和結構的唯一區別在于,結構的默認訪問類型是public的。

            2.  cout和cerr的區別:cout對應于標準輸出流,cerr對應于標準錯誤流; cout可以重定向,cerr不可以;cout要分配緩沖,因此cerr比cout快;它們的 標準默認輸出設備都是屏幕。

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

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

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

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

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

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            導航

            統計

            文章分類

            最新評論

            日本精品久久久中文字幕| 久久精品九九亚洲精品| 一级做a爰片久久毛片毛片| 久久精品卫校国产小美女| 久久人人爽人人爽人人片AV东京热 | 国产成人久久AV免费| 国产精品久久久久天天影视| 精品久久久无码中文字幕天天| 国产精品久久久久久久久软件| 亚洲国产精品久久久天堂| 国产精品成人精品久久久| 热综合一本伊人久久精品| 狠狠色婷婷综合天天久久丁香 | 91麻精品国产91久久久久| 久久一本综合| 国产成人久久激情91| 亚洲人成网站999久久久综合| 久久99国产精品久久久 | AV无码久久久久不卡蜜桃| 精品国产青草久久久久福利| 2020国产成人久久精品| Xx性欧美肥妇精品久久久久久| 精品久久久中文字幕人妻 | 久久国产成人| 99re久久精品国产首页2020| 久久国产热这里只有精品| 久久精品国产男包| 国内精品伊人久久久久影院对白| 久久99精品久久久久久动态图| 国产精品99久久久精品无码| 久久久久亚洲AV成人网人人软件| 2021久久国自产拍精品| 久久久无码精品亚洲日韩蜜臀浪潮| 久久受www免费人成_看片中文| 久久综合狠狠综合久久97色| 精品欧美一区二区三区久久久| 精品久久久久久无码人妻蜜桃| 久久久中文字幕| 久久99国产一区二区三区| 久久99国内精品自在现线| 亚洲精品午夜国产va久久|