1. 程式人生 > >C++之類外定義成員函式、inline成員函式詳解

C++之類外定義成員函式、inline成員函式詳解

注意:在類體中直接定義函式時,不需要在函式名前面加上類名,因為函式屬於哪一個類是不言而喻的

但成員函式在類外定義時,必須在函式名前面加上類名,予以限定(qualifed)," :: "是作用域限定符(field qualifier)或稱作用域運算子,用它宣告函式是屬於哪個類的。

如果在作用域運算子“::”的前面沒有類名,或者函式名前面既無類名又無作用域運算子“::”,如
    ::display( ) 或 display( )
則表示display函式不屬於任何類,這個函式不是成員函式,而是全域性函式,即非成員函式的一般普通函式。

類函式必須先在類體中作原型宣告,然後在類外定義,也就是說類體的位置應在函式定義之前,否則編譯時會出錯


雖然函式在類的外部定義,但在呼叫成員函式時會根據在類中宣告的函式原型找到函式的定義(函式程式碼),從而執行該函式。

在類的內部對成員函式作宣告,而在類體外定義成員函式,這是程式設計的一種良好習慣。如果一個函式,其函式體只有2-3行,一般可在宣告類時在類體中定義。多於3行的函式,一般在類體內宣告,在類外定義。