牛客網 靜態成員變數和靜態成員函式

2021-09-22 16:31:55 字數 1001 閱讀 8246

還是來看一下牛客網上的乙個題目:

對於上述題目,我在練習的時候就存在一些困惑,於是查閱資料之後有了以下的總結,和大家分享一下

(1)static資料成員在類的內部宣告,但只能在類的外部定義,在類的外部不能指定static,在類的定義時候進行初始化;

(2)static資料成員只能在類的外部進行初始化(特例:當整型const static資料成員被常量表示式初始化時,就可以在類的內部進行初始化,但還需要在外部進行定義)。

(3) static資料成員可以是該成員所屬的類型別,而非static資料成員只能自身類的引用或者指標。

(4)static資料成員可以用作類成員函式的預設實參。

(5)static資料成員的值可以改變。

(1) 靜態變數使用 static 修飾符進行宣告,在類被例項化時建立,通過類和物件都可以進行訪問;

(2)不帶有 static 修飾符宣告的變數稱做非靜態變數,在物件被例項化時建立,通過物件訪問;

(3) 乙個類的所有例項的同一靜態變數都是同乙個值,同乙個類的不同例項的同一非靜態變數可以是不同的值。

(4) 靜態函式的實現裡不能使用非靜態成員,如非靜態變數、非靜態函式等。

(1) static 成員函式沒有 this 形參,它可以訪問所屬類的 static 成員,但不能訪問非 static 成員。

(2)static成員函式既可以在類的內部定義,也可以在類的外部定義,在外部定義時,不能重複指定static保留字。

(3)static成員函式不能宣告為虛函式,不能實現動態繫結

(4)static 成員函式不能宣告為const,因為const是針對this是不是const而言的

(5)建構函式、析構函式不能為靜態函式。

關於靜態成員變數的深入剖析可參考部落格:

關於靜態成員函式的深入剖析可參考部落格:

靜態成員變數 和 靜態成員函式

資料成員可以分靜態變數 非靜態變數兩種.靜態成員 靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名 靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員.因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜...

靜態成員變數和靜態成員函式

我們學到的類物件的成員變數一般都是這個物件專屬,不能為其他物件所共有。然而在實際程式設計中我們需要統計物件的數量等問題,所以就必須設定乙個類的物件所共有的變數,就是靜態成員變數。首先通過乙個簡單的例程 說明靜態成員如何使用。includeusing namespace std class a vir...

靜態成員變數和靜態成員函式

本章內容均為coursera中c 程式設計課件的整理 基本概念 靜態成員 在說明前面加了static關鍵字的成員。class crectangle 普通成員變數每個物件有各自的乙份,而靜態成員變數一共就乙份,為所有物件共享。sizeof 運算子不會計算靜態成員變數。class cmyclass 則 ...