C++內嵌函式(Inline)

來源:互聯網
上載者:User

inline 關鍵字用來定義一個類的內嵌函式,引入它的主要原因是用它替代C中運算式形式的宏定義。

運算式形式的宏定義一例:

#define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2))

1.為什麼會使用運算式形式的宏

1).宏的執行效率高。因為它是在代碼中需要的位置直接文本替換,沒有參數壓棧,代碼產生等操作,是由前置處理器完成的。

2).函數的調用需要儲存和恢複現場,有一定的時間和空間的開銷。

2.運算式形式的宏的缺點

1).宏不能訪問對象的私人和保護成員

2).宏不能進行參數有效性檢測,傳回值也不能被強制轉換

3).很容易產生二義性

3.inline的優點

1).和宏類似的高效率

2).內嵌函式是真正的函數,可以訪問對象的私人和保護成員,編譯器對它可以進行參數有效性檢測等。

4.inline在何時使用

1).可以完全取代運算式形式的宏定義

2).在函數內容非常簡單又需要大量重複調用的時候

5.inline的用法

1).內嵌函式必須是和函數體申明在一起,才有效Inline int add(int a,int b) {return a+b};

2).在C++中,在類的內部定義了函數體的函數,被預設為是內嵌函式

3).內嵌函式在C++類中,應用最廣的,應該是用來定義私人成員的存取函數

 今天你菊子曰了嗎?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.