inline 內聯函式

2021-10-07 07:16:52 字數 951 閱讀 5934

// 宣告1(加 inline,建議使用)

inline

intfunctionname

(int first,

int second,..

.);// 宣告2(不加 inline)

intfunctionname

(int first,

int second,..

.);// 定義

inline

intfunctionname

(int first,

int second,..

.);// 類內定義,隱式內聯

class

a// 隱式內聯

}// 類外定義,需要顯式內聯

class

ainline

int a::

doa(

)// 需要顯式內聯

編譯器對 inline 函式處理步驟

優缺點優點

虛函式(virtual)可以是內聯函式(inline)嗎?

#include

using

namespace std;

class

base

virtual

~base()

};class

derived

:public base};

intmain()

),所以 delete 時,會先呼叫派生類(derived)析構函式,再呼叫基類(base)析構函式,防止記憶體洩漏。

delete ptr;

ptr =

nullptr

;system

("pause");

return0;

}

inline 內聯函式

一 inline關鍵字用來定義乙個類的內聯函式,引入它的主要原因是用它替代c中表示式形式的巨集定義。表示式形式的巨集定義一例 define expressionname var1,var2 var1 var2 var1 var2 為什麼要取代這種形式呢,且聽我道來 1 首先談一下在c中使用這種形式巨...

inline內聯函式

技術類筆試題50 都會問巨集與inline的區別,自己去找找看?1 巨集替換發生在預編譯 2 巨集函式 如果可以這麼叫的話 替換時不會檢查引數,inline函式會檢查 3 巨集一定會發生替換,inline貌似不是強制的,編譯器想不替換也沒關係 4 巨集替換時存在著一些不可避免的陷阱 參見c trap...

inline內聯函式

一 內聯函式 內聯函式是指用inline關鍵字修飾的函式 它與普通函式所不同之處只在於函式呼叫的處理。普通 函式進行呼叫時,要將程式執行權轉到被呼叫函式中,然後再返回到呼叫它的函式中 內聯函式不是在呼叫時發生執行權轉移,而是在編譯時將 函式 體 嵌入在每乙個呼叫處。編譯時類似巨集替換,使用 函式體替...