c++學習筆記--類的static靜態成員

static靜態成員
       
      1.static靜態數據成員可以被該類所有對象所共享,但其不是每個對象中的成員。
      2.static靜態成員在類中聲明之後,還必須要在類的外面定義一次,而且還要用
           類名進行限定修飾。
          class Account{
               public:
                    static double rate;
            }
           double Account::rate=0.12;//必須在類的定義之外再定義
      3.靜態數據成員的定義不應該放在類聲明的頭文件中,例如上例中class Account
         頭文件中,則靜態成員的定義應該這樣寫:
         #include“account.h”
        double Account::rate=0.12;//在包含類的費內聯成員函數定義的文件中
      4.一般的靜態數據成員的定義都應放在類的定義之外,但是如果靜態數據成員是整型
         const static成員,則通常在定義時就初始化(初始化時必須要是一個常量表達式)。
         class Account {
         public :
                  const static int namesize=16;
                  const static string name[namesize];
         }
        const int Account::namesize;//仍然需要在類的外面定義,只是初始化放在類裏面
        const string Account::name[namesize]="馬化騰";
        本例中,在定義name時直接用了namesize,而並沒有在namesize之前用Account限定
        說明他是Account的成員,是因爲在定義name時,前面有了Account修飾了,這樣name
       的作用域已經在Account類裏面了,所以他可以直接調用namesize成員。
      5.靜態數據成員的訪問除了和一般數據成員的訪問相同外,還支持用類名限定修飾的名字來
         直接訪問
         if(Account::namesize==16)
         {。。。。。。}
      6.靜態數據成員的類型可以是所屬的類類型,而非static成員則只能是自身類的指針或引用!
         class Bar{
         public:
                   static Bar mem1;//ok
                  Bar *mem2;// ok
                  Bar mem3;  //error
           };
       7.static數據成員可以作爲類成員函數的缺省實參,而非static成員則不可以。
           class Screen{
            public:
                    Screen&clear(char=bkground);
            private:
                    static const char bkground='#';
            }
           非static數據成員不能用作默認實參,因爲他的值不能獨立與所屬的對象而使用。
           使用非static數據成員作默認實參,將無法提供對象以獲取該成員的值,因而是錯誤的。
        8.靜態成員函數  的聲明除了在類體中的函數聲明前加上關鍵字static, 以及不能聲明爲
          const 或volatile之外,與非靜態成員函數相同。出現在類體外的函數定義不能指定關
          鍵字static。
        9.靜態成員函數沒有this指針,任何顯式或隱式的調用this指針都是錯誤的,例如一個static
          成員函數中調用了一個非static數據成員都是錯誤的,因爲在調用非static時會隱式的調用
          當前對象的this指針,而這個是不允許的。
                      

發佈了42 篇原創文章 · 獲贊 71 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章