靜態成員的特點:
(1)static數據成員在類的內部聲明,但只能在類的外部定義,在類的外部不能指定static,在類的定義時候進行初始化;
(2)static數據成員只能在類的外部進行初始化(特例:當整型const static數據成員被常量表達式初始化時,就可以在類的內部進行初始化,但還需要在外部進行定義)。
(3)static數據成員可以是該成員所屬的類類型,而非static數據成員只能自身類的引用或者指針。
(4)static數據成員可以用作類成員函數的默認實參。
(5)static數據成員的值可以改變。
靜態成員和非靜態成員的區別:
一、名稱上的區別:
成員變量也叫實例變量;靜態變量也叫類變量。
二、內存存儲的區別:
成員變量存儲到堆內存的對象中,靜態變量存儲到方法區的靜態區中。
三、生命周期不同:
1)成員變量隨著對象的出現而出現,隨著對象的消失而消失。
2)靜態變量隨著類的出現而出現,隨著類的消失而消失。
四、補充:
1.靜態變量使用 static修飾符進行聲明;
2.在類被實例化時創建,通過類進行訪問不帶有 static 修飾符聲明的變量稱作非靜態變量;
3.在對象被實例化時創建,通過對象進行訪問;
4.一個類的所有實例的同一靜態變量都是同一個值,同一個類的不同實例的同一非靜態變量可以是不同的值;
5.靜態函數的實現里不能使用非靜態成員,如非靜態變量、非靜態函數等。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.