C 類的靜態成員

2021-08-22 18:13:29 字數 1078 閱讀 9555

1,靜態成員變數是類所有,不依賴物件而存在,屬於全域性資料區。資料段

2,不能在類裡面分配空間,只能在類外初始化,預設為0

3,可以通過類名直接訪問public靜態成員變數,也可以通過物件名,靜態成員變數,也受訪問許可權限制

4,靜態成員函式在不構造物件的情況下,可以直接訪問靜態成員,通過類名,但是普通成員函式就不行

5,用sizeof求物件的大小時,static成員變數不佔空間,因為它屬於類。求類大小也一樣。

6,c++類物件中的成員變數和成員函式是分開儲存的

成員變數

成員函式

7,靜態成員函式和非靜態成員函式的

靜態成員函式不包括指向當前物件的this指標

非靜態成員函式包括指向當前物件的this指標

this指標的值是當前物件的起始位址。

test(int i)其實等價於test(test* this,int i);

8,靜態成員函式不能被const修飾。在用類名直接呼叫靜態成員函式前提下,靜態成員函式中只能呼叫靜態成員變數。

二,應用

1,用來統計物件數目

#include class test

test()

~test()

};int test::ccount;

void run()

int main()

2,單列模式

概念:乙個類最多只能建立乙個物件。

步驟:把建構函式的訪問級別設為private,使其在類外不能構造物件。

定義乙個私有靜態物件指標變數和乙個公有靜態成員函式

在靜態成員函式中,判斷那個靜態物件指標是否為空,為空就new出乙個物件,並返回。如果不為空,直接返回上次的物件指標。

3,**

#include #include using namespace std;

class singleton

public:

static singleton* getinstance()

int main(int argc, char *argv)

C 類靜態成員與類靜態成員函式

當將類的某個資料成員宣告為static時,該靜態資料成員只能被定義一次,而且要被同類的所有物件共享。各個物件都擁有類中每乙個普通資料成員的副本,但靜態資料成員只有乙個例項存在,與定義了多少類物件無關。靜態方法就是與該類相關的,是類的一種行為,而不是與該類的例項物件相關。靜態資料成員的用途之一是統計有...

C 類靜態成員與類靜態成員函式

當將類的某個資料成員宣告為static時,該靜態資料成員只能被定義一次,而且要被同類的所有物件共享。各個物件都擁有類中每乙個普通資料成員的副本,但靜態資料成員只有乙個例項存在,與定義了多少類物件無關。靜態方法就是與該類相關的,是類的一種行為,而不是與該類的例項物件相關。靜態資料成員的用途之一是統計有...

C 類靜態成員與類靜態成員函式

當將類的某個資料成員宣告為static時,該靜態資料成員只能被定義一次,而且要被同類的所有物件共享。各個物件都擁有類中每乙個普通資料成員的副本,但靜態資料成員只有乙個例項存在,與定義了多少類物件無關。靜態方法就是與該類相關的,是類的一種行為,而不是與該類的例項物件相關。靜態資料成員的用途之一是統計有...