普通成員變數每個物件各自持有乙份,而靜態成員變數只有乙份,被所有同類物件共享;
普通成員函式一定是作用在某個物件上的,而靜態成員函式並不具體作用在某個物件上;
訪問方式:訪問普通成員時,要通過物件名.成員名的方式,指明要訪問的成員變數是屬於哪個物件的,或要呼叫的成員函式作用於哪個物件;訪問靜態成員時,則可以通過類名::成員名的方式訪問,不需要指明被訪問的成員屬於哪個物件或作用於哪個物件。因此,甚至可以在還沒有任何物件生成時就訪問乙個類的靜態成員;
引數傳遞:普通成員函式在引數傳遞時編譯器會隱藏地傳遞乙個this指標.通過this指標來確定呼叫類產生的哪個物件;但是靜態成員函式沒有this指標,不知道應該訪問哪個物件中的資料,所以在程式中不可以用靜態成員函式訪問類中的普通變數。
靜態成員函式只能訪問靜態成員變數
C 靜態成員變數與靜態成員函式
類的靜態成員有兩種 靜態成員變數和靜態成員函式,語法是在普通成員變數和成員函式前加static關鍵字。0 定義class crect 1 存在原因 靜態成員變數在本質上是全域性變數。乙個類,哪怕乙個物件都不存在,其靜態成員變數也是存在的。靜態成員函式並不需要作用在某個具體的物件上,因此本質上是全域性...
靜態成員函式與靜態成員變數
此文針對於初學者或者對這一部分掌握不太清楚的人。首先靜態成員函式的宣告 static void setname qstring name 需要在函式的宣告前加static關鍵字。定義的時候和普通成員函式一樣,不需要加static,但是靜態成員函式只能訪問靜態成員變數和靜態成源函式。class dem...
靜態成員函式與靜態成員變數
這篇介紹了靜態成員函式與靜態成員變數,是我的讀書筆記,我希望它夠簡短但又比較全面,起到複習的作用。如果有一些c 知識記不清楚了,它可以幫你很快回憶起來。1 加在區域性變數的前面使之成為靜態區域性變數,作用域還是在函式內部,可是生存週期延長了。2 加在全域性變數的前面限定該變數作用域為檔案作用域,就是...