C++之inline函数使用总结
生活随笔
收集整理的這篇文章主要介紹了
C++之inline函数使用总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、C++為什么引入inline函數?
主要目的:用它代替C語言中表達式形式的宏定義來解決程序中函數調用的效率問題。
C語言中的宏定義,它使用預處理器實現,沒有了參數壓棧、代碼生成等一系列得到操作,因此效率很高。
但缺點如下:
預處理器符號表中的簡單替換,不能進行參數有效性的檢測,不能享受C++編譯器嚴格類型檢查的好處。
另外,它的返回值也不能被強制轉換為可轉換的合適類型。
C++如果一個操作或者說一個表達式涉及類的保護成員或者私有成員,這種宏定義就無法實現(因為無法將this指針放在合適的位置上)
二、為什么inline能很好的取代表達式形式的預定義?
inline定義類的內聯函數,函數的代碼被放入符號表中,在使用時直接進行替換(像宏一樣展開)沒有了調用的開銷,效率也高了。
類的內聯函數也是一個真正的函數。編譯器在調用一個內聯函數的時候,首先進行一系列的檢測(參數的類型)
inline函數可以作為某個類的成員函數,這就可以在其中使用該類的保護成員和私有成員。
三、inline函數的使用場合
inline可以理解為2種,一種是顯示的inline,一種是隱式的inline,如果類里面定義了函數,那么也就隱式調用的inline,默認是隱式。示例代碼:
#include
總結
以上是生活随笔為你收集整理的C++之inline函数使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++之explicit关键字使用总结
- 下一篇: C++之‘nullptr’ was no