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

2022-06-18 14:54:09 字數 578 閱讀 2489

簡單情況:

#includeusing

namespace

std;

classa};

intmain()

總結:1.如果通過物件呼叫虛函式,編譯器直接找到虛函式的位址。

2.對於虛函式和成員函式,編譯器都會隱式的傳入this指標。

3.對於指標和引用的形式來呼叫虛函式,編譯器走的則是虛函式表的路線。

4.無論是成員函式還是虛函式,他的位址都是在編譯期間就已經確定下來了,接下來就看你怎麼去找到這個虛函式的位址,可以直接找,也可以通過虛函式表.

複雜情況以及靜態成員函式的呼叫形式:

#includeusing

namespace

std;

class

a

virtual

void

foo1()

static

void

foo2()

void

aa()

int data = 3;};

intmain()

c 靜態函式和靜態成員

靜態函式 在類內宣告static,在類外定義時不能再用static,靜態函式可以訪問類的靜態物件。靜態物件 靜態物件不屬於任何乙個物件,所以他們並不是在建立類的物件時被定義的,也就是不能被建構函式初始化。要想定義全域性變數一樣定義靜態物件。生命週期和全域性變數一樣。通常,為了防止物件多次定義,最好把...

c 之靜態函式和靜態方法

1 物件與物件之間要共享資料,則需要使用靜態成員或靜態方法。2 在類中宣告靜態成員變數,即使不例項化物件,也可以我靜態成員變數分配空間。因為靜態成員變數在物件建立之前就已經被分配了記憶體空間 3 靜態成員雖在類中,但它並不是隨物件的建立而分配記憶體空間的,也不是隨物件的撤銷而釋放 一般的成員在物件建...

靜態函式呼叫

include class point static void init 靜態成員函式 呼叫1 非靜態成員函式和非靜態成員屬於物件的方法和資料,也就是先產生類的物件,然後通過類的物件去引用。void main 呼叫2 靜態成員函式和靜態成員變數屬於類本身,在類載入的時候,即為它們分配了空間,所以可通...