我們學到的類物件的成員變數一般都是這個物件專屬,不能為其他物件所共有。然而在實際程式設計中我們需要統計物件的數量等問題,所以就必須設定乙個類的物件所共有的變數,就是靜態成員變數。
首先通過乙個簡單的例程 說明靜態成員如何使用。
#includeusing namespace std;
class a
virtual ~a()
virtual int get()
virtual void set(int age)
static int total;
private:
int it;
};int a::total = 0;
int main()
return 0;
}
程式執行的結果是:
1、靜態成員變數必須屬於類的成員變數,不屬於單個物件。
2、靜態成員變數必須在全域性定義。
3、靜態成員變數的使用方式:
a::total;
4、靜態成員變數在物件存在之前就存在著。
靜態成員函式和靜態成員變數一樣,不屬於任何乙個物件。
用乙個程式來說明如使用靜態成員函式。
#includeusing namespace std;
class a
{public:
void static show() {
cout<
程式執行的結果是:
注意:
1、由於靜態成員函式是屬於整個類的,所以不能訪問某個物件的成員變數。因為它沒有指向物件的this指標。
2、靜態成員函式不能說明為虛函式。
靜態成員變數 和 靜態成員函式
資料成員可以分靜態變數 非靜態變數兩種.靜態成員 靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名 靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員.因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜...
靜態成員變數和靜態成員函式
本章內容均為coursera中c 程式設計課件的整理 基本概念 靜態成員 在說明前面加了static關鍵字的成員。class crectangle 普通成員變數每個物件有各自的乙份,而靜態成員變數一共就乙份,為所有物件共享。sizeof 運算子不會計算靜態成員變數。class cmyclass 則 ...
靜態成員變數和靜態成員函式
靜態成員提供乙個同類成員的共享機制 static 關鍵字可以說明乙個類的成員 把乙個類的成員說成說明成 ststic 時,這個類無論有多少物件被建立 這些物件共享這個static 成員 靜態成員變數 include using namespace std class bb void addc pro...