class TableClass
{
private:
int I,j;
public:
int add() { return I+j;}
inline int dec() { return I-j;}
int GetNum();
}
inline int tableclass::GetNum()
{
return I;
}
上面申明的三個函數都是内聯函數。
注意:
1、在C++中,在類的内部定義了函數體的函數,被預設為是内聯函數。而不管是否有inline關鍵字。
2、如果函數的定義放在類的外部,函數定義前必須加inline才能成為内聯函數,而函數聲明可以加inline也可以不加
3、關鍵字inline 必須與函數定義體放在一起才能使函數成為内聯,僅将inline 放在函數聲明前面不起任何作用。
是以說,inline 是一種“用于實作的關鍵字”,而不是一種“用于聲明的關鍵字”。一般地,使用者可以閱讀函數的聲明,但是看不到函數的定義。盡管在大多數教科書中内聯函數的聲明、定義體前面都加了inline 關鍵字,但我認為inline 不應該出現在函數的聲明中。這個細節雖然不會影響函數的功能,但是展現了高品質C++/C 程式設計風格的一個基本原則:聲明與定義不可混為一談,使用者沒有必要、也不應該知道函數是否需要内聯。-摘自高品質C++/C 程式設計指南