C 虛函式 靜態函式的作用

2021-06-10 09:29:22 字數 340 閱讀 7416

靜態函式:

1. 函式和變數,宣告為靜態,在類定義的時候分配了記憶體空間,存放在靜態區,可以被類的多個物件公用。而類中非靜態函式和變數,在類例項化時才分配記憶體空間,存放在棧中,被類的物件獨佔。

2. 靜態函式只能呼叫靜態成員變數,不能呼叫非靜態成員變數。

3. 變數定義為靜態,而被定義為全域性變數,可以避免汙染全域性名字空間。

static關鍵字的詳細說明,參考:c++中static作用和使用方法

虛函式:

1. 虛函式的作用是實現「動態聯編」,即在程式執行時動態地選擇合適的成員函式。因此不可與關鍵字static同時使用。

虛函式的詳細說明,參考:c++虛函式的作用

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

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

c靜態函式

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

虛函式 析構函式 靜態函式 多型

將可能會被繼承的父類的析構函式設定為虛函式,可以保證當我們new乙個子類,然後使用基類指標指向該子類物件,釋放基類指標時可以釋放掉子類的空間,防止記憶體洩漏。c 預設的析構函式不是虛函式是因為虛函式需要額外的虛函式表和虛表指標,占用額外的記憶體。而對於不會被繼承的類來說,其析構函式如果是虛函式,就會...