C++ 教程
C++ 內(nèi)聯(lián)函數(shù)是通常與類一起使用。如果一個函數(shù)是內(nèi)聯(lián)的,那么在編譯時,編譯器會把該函數(shù)的代碼副本放置在每個調(diào)用該函數(shù)的地方。
對內(nèi)聯(lián)函數(shù)進行任何修改,都需要重新編譯函數(shù)的所有客戶端,因為編譯器需要重新更換一次所有的代碼,否則將會繼續(xù)使用舊的函數(shù)。
如果想把一個函數(shù)定義為內(nèi)聯(lián)函數(shù),則需要在函數(shù)名前面放置關(guān)鍵字 inline,在調(diào)用函數(shù)之前需要對函數(shù)進行定義。如果已定義的函數(shù)多于一行,編譯器會忽略 inline 限定符。
在類定義中的定義的函數(shù)都是內(nèi)聯(lián)函數(shù),即使沒有使用 inline 說明符。
下面是一個實例,使用內(nèi)聯(lián)函數(shù)來返回兩個數(shù)中的最大值:
#include <iostream> using namespace std; inline int Max(int x, int y) { return (x > y)? x : y; } // 程序的主函數(shù) int main( ) { cout << "Max (20,10): " << Max(20,10) << endl; cout << "Max (0,200): " << Max(0,200) << endl; cout << "Max (100,1010): " << Max(100,1010) << endl; return 0; }
當上面的代碼被編譯和執(zhí)行時,它會產(chǎn)生下列結(jié)果:
Max (20,10): 20 Max (0,200): 200 Max (100,1010): 1010其他擴展