static的作用


一、靜態局部變量

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

  2.但是靜態局部變量的作用域還是和其他局部變量一樣在函數中,只能在該函數中調用,退出函數后還存在但不能使用;

  3.在聲明時如果沒有初始化,編譯器會將它自動初始化為0。

二、靜態全局變量:

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

  2.其他文件中可以定義與它同名的變量,互不影響。

三、靜態函數

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

  2.其他文件中可以定義與它同名的函數,互不影響。

四、靜態屬性

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

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

  3.所以,就算沒有實例化對象,也可以直接操作靜態數據成員;

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

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

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

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

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

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

五、靜態成員函數

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

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

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

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

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM