在c++中,在類的內部定義了函式體的函式,被預設為是內聯函式。而不管你是否有inline關鍵字。
內聯函式也有一定的侷限性。就是函式中的執行**不能太多了,如果,內聯函式的函式體過大,一般的編譯器會放棄內聯方式,而採用普通的方式
呼叫函式。這樣,內聯函式就和普通函式執行效率一樣了。內聯函式的引入可以說完全是為了效能的考慮。
開發人員可以有兩種方式告訴編譯器需要內聯哪些類成員函式,一種是在類的定義體外;一種是在類的定義體內。
(1)當在類的定義體外時,需要在該成員函式的定義前面加「inline」關鍵字,顯式地告訴編譯器該函式在呼叫時需要「內聯」處理,如:
class student
public:
string getname();
int getage();
void setage(int ag);
private:
string name;
int age;
inline string getname()
return name;
inline int getage()
return age;
inline void setage(int ag)
age = ag;
(2)當在類的定義體內且宣告該成員函式時,同時提供該成員函式的實現體。此時,「inline」關鍵字並不是必需的,如:
class student
public:
string getname()
int getage()
void setage(int ag)
private:
string name;
int age;
當普通函式(非類成員函式)需要被內聯時,則只需要在函式的定義時前面加上「inline」關鍵字,如:
inline int dosomemagic(int a, int b)
return a * 13 + b % 4 + 3;
C 基礎概念篇
一.不同進製之間的相互轉換二制,1.二進位制,八進位制,十六進製制轉換成十進位制 採用按權求和 2.十進位制轉換成二進位制,八進位制,十六進製制 連除倒取餘 3.八進位制 0 7 以0開頭,例 065 十六進製制 0 9 a f 0x開頭 例 0xa5 二.變數 1.定義 資料型別 變數名 初始值 ...
docker docker學習基礎概念篇
1 一種虛擬化的方案,直接執行在作業系統山上的使用者空間 2 是一種作業系統級別的虛擬化 3 依賴於linux核心特性 namespace和cgroups 只能執行相同或者相似核心的作業系統 將應用程式自動部署到容器 目標 1 提供簡單輕量的建模方式 2 職責的邏輯分離 3 快速高效的開發周期 4 ...
JS基礎學習篇(二)
1 新增乙個或多個元素 向陣列最後新增 arr.push ele1,ele2,向陣列最前面新增 arr.unshift ele1,ele2,這兩個方法都會返回新陣列的長度並改變原來的陣列。arr.splice insertpos,0,item1 item2 itemn 將乙個或多個新元素插入到陣列的...