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

2021-10-12 12:47:38 字數 642 閱讀 6710

此文針對於初學者或者對這一部分掌握不太清楚的人。

首先靜態成員函式的宣告:

static

void

setname

(qstring name)

;

需要在函式的宣告前加static關鍵字。

定義的時候和普通成員函式一樣,不需要加static,但是靜態成員函式只能訪問靜態成員變數和靜態成源函式。

class

demo

;

下面在類的宣告中說明靜態成員的乙個重要特性,沒有this指標,不能訪問普通成員函式和變數。

qstring  demo::m_name ="";

//靜態成員變數在類外定義

demo()

~demo()

void demo::

setname

(qstring name)

對於靜態成員函式,可以通過類名直接訪問,經常使用的就是通過類名進行訪問,非靜態成員函式,需通過該類物件進行呼叫,在建立物件的時候,會預設傳入乙個this指標,該指標指向類的物件的位址,可通過this指標訪問成員函式和變數,靜態成員函式沒有this指標,不能訪問普通成員函式和變數。

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

這篇介紹了靜態成員函式與靜態成員變數,是我的讀書筆記,我希望它夠簡短但又比較全面,起到複習的作用。如果有一些c 知識記不清楚了,它可以幫你很快回憶起來。1 加在區域性變數的前面使之成為靜態區域性變數,作用域還是在函式內部,可是生存週期延長了。2 加在全域性變數的前面限定該變數作用域為檔案作用域,就是...

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

靜態的成員函式,同靜態資料成員類似,它也是屬於類,而不是屬於某乙個物件的。靜態成員函式不能訪問非靜態的資料成員,它只能訪問靜態資料成員,也只能呼叫其它的靜態成員函式。原因是 當前物件的位址 this 是被隱含地傳遞到被呼叫的函式的。但乙個靜態成員函式沒有 this 指標,所以它無法訪問非靜態的成員函...

C 靜態成員變數與靜態成員函式

類的靜態成員有兩種 靜態成員變數和靜態成員函式,語法是在普通成員變數和成員函式前加static關鍵字。0 定義class crect 1 存在原因 靜態成員變數在本質上是全域性變數。乙個類,哪怕乙個物件都不存在,其靜態成員變數也是存在的。靜態成員函式並不需要作用在某個具體的物件上,因此本質上是全域性...