2015-08-13 72 views
-5

由於內聯函數將替換實際的代碼調用,因此將內聯函數調用爲const的用法是什麼。內聯const函數

Inline void adddata() const {...} 
+0

['inline'](https://stackoverflow.com/questions/145838/benefits-of-inline-functions-in-c)和['const'](https://stackoverflow.com/questions/ 751681/const-last-in-ac-method-declaration)是兩個正交的概念,它們彼此無關 – CoryKramer

+0

您已將函數指定爲獨立(不是成員函數)。如果這是你的意圖,代碼是無效的 - 一個const函數必須是一個成員函數。 – nos

+0

但是,如果你定義了上面提到的函數,那麼內部會發生什麼? – Swapnil

回答

2

內聯函數是一個可以在每個翻譯單元中定義的函數,並且必須在調用它的每個翻譯單元中分別定義。對於編譯器來說,這也是一個完全沒有約束力的建議,你認爲函數應該是內聯的。編譯器可以實際內聯或不內聯你的任何函數,無論它們是否聲明爲內聯。

const意味着該函數是一個方法的對象將不會被函數調用可視地修改。有一些例外情況,如果你足夠努力,總是可以修改,但是一般情況下,const對於調用者是一個承諾,你不會這麼做。

一起使用它們意味着除了它們各自的含義之外別無其他。它們本質上是無關的。