第7章 函式 7

2021-06-02 00:31:13 字數 773 閱讀 2116

7.7 類的成員函式

函式原型必須在類中定義。但是,函式體則既可以在類中也可以在類外定義。

7.7.1 定義成員函式的函式體

類的所有成員都必須在類定義的花括號裡面宣告,此後,就不能再為類增加任何成員。類的成員函式必須加宣告的一般定義。類的成員函式既可以在類的定義內也可以在類的定義外定義。

編譯器隱式地將在類內定義的成員函式當作內聯函式。

類的成員函式可以訪問該類的private成員。

1. 成員函式含有額外的、隱含的形參。

2. this指標的引入

每個成員函式都有乙個額外的、隱含的形參this。在呼叫成員函式時,形參this初始化為呼叫函式的物件的位址。

3. const成員函式的引入

跟在成員函式宣告的形參表後面的const的作用:const改變了隱含的this形參的型別。

用這種方式使用const的函式稱為常量成員函式(const member function)。由於this是指向const物件的指標,const成員函式不能修改呼叫該函式的物件。

const物件、指向const物件的指標或引用只能用於呼叫其const成員函式,如果嘗試用它們來呼叫非const成員函式,則是錯誤的。

4. this指標的使用

在成員函式中,不必顯式地使用this指標來訪問被呼叫函式所屬物件的成員。對這個類的成員的任何沒有字首的引用,都被假定為通過指標this實現的引用。

由於this指標是顯式定義的,因此不需要在函式的形參表中包含this指標,實際上,這樣做是非法的。但是,在函式體中可以顯式地使用this指標。

第7章 函式 4

7.2.5 傳遞給函式的陣列的處理 非引用陣列形參的型別檢查只是確保實參是和陣列元素具有同樣型別的指標,而不會檢查實參實際上是否指向指定大小的陣列。任何處理陣列的程式都要確保程式停留在陣列的邊界內。第一種方法是在陣列本身放置乙個標記來檢測陣列的結束,c風格字串是一種字元陣列,並且以空字元null作為...

第7章 函式 6

7.5 區域性物件 在函式中定義的形參和變數的名字只位於函式的作用域中 這些名字只在函式體中可見。通常,變數名從宣告或定義的地方開始到包圍它的作用域結束處都是可用的。7.5.1 自動物件 只用當定義它的函式被呼叫時才存在的物件稱為自動物件 automatic object 自動物件在每次呼叫函式時建...

第7章 函式 9

7.7.4 類 檔案的組織 通常將類的宣告放置在標頭檔案中。大多數情況下,在類外定義的成員函式則置於原始檔中。c 程式設計師習慣使用一些簡單的規則給標頭檔案及其關聯的類定義 命名。類定義應置於名為type.h或type.h的檔案中,type指在該檔案中的類的名字。成員函式的定義則一般儲存在與類同名的...