2012-02-11 32 views
13

我有一個靜態成員函數,它對我來說僅僅是語法糖,我希望它的身體出現在通過傳遞參數的運動的位置。你可以內聯靜態成員函數嗎?

inline static foo(int a) {return a & 0x00000040;} 

被內聯,就像它,如果它是inline而不static

+1

與任何內聯一樣,答案是「視情況而定」。如果你想在某處傳遞一個函數指針到'foo'呢? – 2012-02-11 22:35:20

回答

13

編譯器選擇了它想做的事情,所以我們不能說它會選擇做什麼。也就是說,函數static不會阻止它被內聯; static函數基本上是自由函數,具有不同的命名風格和訪問類的私有成員。

+0

他們在一個重要的方面不同於免費功能:訪問私人會員 – John 2012-02-11 22:44:28

+0

@約翰啊是的,這是一個重要的區別。 – 2012-02-11 22:46:11

+0

類中的定義是不是意味着內聯請求? – 2016-01-29 05:11:41

0

靜態成員方法沒有參數this,因此只能訪問靜態成員變量。

這與方法是否內聯是不同的。所以這兩個人是彼此獨立的。

編譯器決定一個方法是否將被內聯。您對關鍵字的使用僅僅是編譯器的一個提示。

相關問題