Ⅰ 下面對靜態數據成員的描述中,正確的是( )。
【答案】:D
靜態數據成員必須在類體外初始化,它是類的所有對象的共有成員,需要使用類名調用,靜態數據成員的初始化與許可權控制無關。
Ⅱ 類的靜態成員和非靜態成員的區別是什麼
靜態成員的特點:
靜態成員在類的內部聲明,但在類的外部定義和初始化,其值可改變。
靜態成員只能由類的外部進行初始化,除非整型const static數據成員被常量表達式初始化,此時可在類內部初始化,但需外部定義。
靜態成員可為類類型,而非靜態成員限於自身類的引用或指針。
靜態成員可用作類成員函數的默認實參。
靜態成員的值可被改變。
靜態成員與非靜態成員的區別:
名稱上,成員變數稱為實例變數,靜態變數稱為類變數。
內存存儲上,成員變數存儲於堆內存中的對象中,靜態變數存儲於方法區的靜態區。
生命周期不同,成員變數隨對象出現與消失,靜態變數則隨類出現與消失。
靜態變數聲明時使用static修飾符,非靜態變數在類被實例化時創建,通過類訪問;靜態變數通過類進行訪問。
一個類的所有實例共享同一靜態變數值,不同實例的非靜態變數可有不同的值。
靜態函數實現中不能使用非靜態成員,如非靜態變數、非靜態函數等。