1. 程式人生 > 其它 >C++ 「靜態資料成員」和「靜態成員函式」的簡單認識

C++ 「靜態資料成員」和「靜態成員函式」的簡單認識

靜態資料成員

格式:

static 資料型別 資料成員
如:
static float sum;

靜態資料成員為所有同類物件所共享, 屬於類物件的集合, 不屬於某一物件, 可以用類名訪問靜態資料成員:

類名::靜態資料成員
如:
float Student::sum = 0.0;

訪問靜態資料成員

物件名.靜態資料成員
物件指標 -> 靜態資料成員

靜態資料成員初始化: 應在類外單獨進行, 而且應在定義物件之前進行. 一般在 main() 函式之前, 類宣告之後的特殊地帶為它提供定義和初始化.

格式:

資料型別 類名::靜態資料成員 = 初始值;

編譯系統自己預設賦初值為0;

在類外, 私有靜態資料成員不能被直接訪問, 必須通過共有的成員函式訪問.

靜態成員函式

靜態成員函式屬於整個類.

格式:

static 返回型別 靜態成員函式(引數表)
如:
static void showCountSumAve();

呼叫共有成員函式格式:

類名::靜態成員函式名(實參表)  
物件.靜態成員函式名(實參表)  
物件指標 -> 靜態成員函式名(實參表)

一般而言, 靜態成員函式不訪問類中的非靜態成員函式. 若確實需要, 只能通過物件名(或物件指標, 物件引用)訪問該物件的非靜態成員.

非靜態成員函式有 this 指標, 而靜態成員函式沒有 this 指標.

注意與「常資料成員」和「常成員函式」之間別搞混。