static的做用

1、靜態局部變量函數

  1.static修飾的局部變量,不像其餘局部變量同樣函數退出時就消失,它的存儲於全局區,生命週期是整個文件;this

  2.可是靜態局部變量的做用域仍是和其餘局部變量同樣在函數中,只能在該函數中調用,退出函數後還存在但不能使用;指針

  3.在聲明時若是沒有初始化,編譯器會將它自動初始化爲0。對象

2、靜態全局變量:生命週期

  1.靜態全局變量只能在本文件中訪問,其餘文件不可訪問;作用域

  2.其餘文件中能夠定義與它同名的變量,互不影響。編譯器

3、靜態函數編譯

  1.靜態函數只能在聲明它的文件中可見,其餘文件中不能使用該函數;class

  2.其餘文件中能夠定義與它同名的函數,互不影響。變量

4、靜態屬性

  1.static修飾的屬性稱爲靜態屬性,靜態屬性屬於類而非某個對象,不管實例化了多少個對象,它只有一份;

  2.任何一個該類的對象均可以對它操做,一個對象改變了它的值,其餘對象中的也會改變;

  3.因此,就算沒有實例化對象,也能夠直接操做靜態數據成員;

  4.至關於加了一個類約束和訪問控制屬性限制的全局變量,表示只能在這個類裏面使用(做用域),它存儲(生命週期)在全局區;

  5.靜態屬性必須在類外定義和初始化;

  5.和普通數據成員同樣,靜態數據成員也聽從public, protected, private訪問規則;

  6.初始化格式:數據類型 類名::靜態成員名=值 (int Class::num=0);

  7.訪問方式:① 類對象名.靜態成員名 (cla.num);

        ② 類類型名::靜態成員名 (class::num);

5、靜態成員函數

  1.static修飾的函數稱爲靜態函數,靜態函數也是屬於整個類,而不是某個對象;

  2.靜態成員函數沒有隱藏this指針;

  3.它沒法訪問屬於類對象的非靜態屬性,也沒法調用非靜態成員函數;

  4.只能訪問靜態屬性  和  調用靜態函數;

  5.態函數實際上是加了類約束 及 訪問控制屬性限制的 全局函數。

相關文章
相關標籤/搜索