靜態函式呼叫

2021-10-02 01:56:19 字數 1001 閱讀 4679

#include

class

point

static

void

init()

//靜態成員函式

};

呼叫1:非靜態成員函式和非靜態成員屬於物件的方法和資料,也就是先產生類的物件,然後通過類的物件去引用。

void

main()

呼叫2:靜態成員函式和靜態成員變數屬於類本身,在類載入的時候,即為它們分配了空間,所以可通過類名::函式名,類名::變數名來訪問。

void

main()

呼叫3:靜態成員函式只能呼叫靜態成員變數。

#include

class

point

static

void

init()

//靜態成員函式

private

:int x, y;

//非靜態成員};

void

main()

函式之間的引用許可,記憶體模型: 無論採什麼樣的操作,程式**都是在記憶體中執行的,只有在記憶體中占有了一席之地,我們才能夠訪問它。如果乙個成員函式或成員變數還未在記憶體中產生,結果是無法訪問它的。

呼叫4:類外初始化靜態成員變數。非靜態成員函式可以呼叫靜態成員函式。

#include

int point::x =0;

int point::y =0;

//類外初始化靜態成員變數

class

point

static

void

init()

//靜態成員函式

static

int x, y;

//靜態成員變數};

void

main()

靜態函式與非靜態函式的區別

靜態成員函式和非靜態成員函式的根本區別在於有無this指標。非靜態函式由物件名或者物件指標 呼叫,呼叫時編譯器會向函式傳遞this指標 靜態成員函式則由類名 或者物件名呼叫 非靜態函式中有this指標,靜態函式中沒有this指標,不能訪問物件的成員函式,成員函式有this指標,const修飾this...

C 虛函式和靜態函式呼叫方式

簡單情況 includeusing namespace std classa intmain 總結 1.如果通過物件呼叫虛函式,編譯器直接找到虛函式的位址。2.對於虛函式和成員函式,編譯器都會隱式的傳入this指標。3.對於指標和引用的形式來呼叫虛函式,編譯器走的則是虛函式表的路線。4.無論是成員函...

c靜態函式

c程式一直由下列部分組成 1 正文段 cpu執行的機器指令部分 乙個程式只有乙個副本 唯讀,防止程式由於意外事故而修改自身指令 2 初始化資料段 資料段 在程式中所有賦了初值的全域性變數,存放在這裡。3 非初始化資料段 bss段 在程式中沒有初始化的全域性變數 核心將此段初始化為0。5 堆 動態儲存...