C++基礎之static(靜態)變量
阿新 • • 發佈:2018-03-03
引用 靜態成員 頭文件 this指針 文件中 單元 一份 文件無效 全局 static 表示靜態
作用:
1、在函數體內,靜態變量的值維持不變(記憶功能)
2、是一個本地的全局函數,即只能被本模塊的函數訪問(隱藏功能)
static變量:
static全局變量和普通全局變量的區別:static變量只初始化一次(即不能重復定義),這樣可以防止在其他文件單元中被引用
static局部變量和普通局部變量的區別:static變量值初始一次,下次的運算依據是上一次的值(第二次碰到初始化語句直接跳過即可)
static函數:
static函數只能在一個源文件中有效,在其他源文件無效
類中的static:
1、無論類對象被定義多少個,靜態數據成員始終只有一份,用作共享
2、靜態數據成員存儲在全局數據區,定義時要分配空間,即使類沒有被實例化,靜態數據成員也可以被使用
3、遵從public、private、protect訪問
4、static的成員函數在類外初始化(類中只是聲明,cpp中才是初始化),但此時不要加static關鍵字
5、static數據成員沒有this指針(普通的類成員函數都有),因此不能訪問類中的非靜態成員函數,只能訪問成員函數
優點:
1、不存在全局名字沖突
2、信息可以隱藏,可以為private
註:不要在頭文件定義靜態變量,不要在頭文件定義任何變量
C++基礎之static(靜態)變量