c++基礎——類繼承中方法過載
一、前言
二、過載方法及虛函式
我們討論《c++ primer plus》中的如下場景:銀行記錄客戶資訊,包括客戶姓名、當前餘額。客戶這一類別當然能夠建立客戶物件、存款、取款以及顯示資訊。銀行需要特殊記錄具有透支許可權的客戶,因此這一類別的客戶要額外記錄透支上限、透支貸款利率以及當前透支總額。此外,取款和顯示資訊兩個操作必須考慮客戶的透支情況。綜上,具有透支許可權的客戶是客戶這一基類的派生類,派生類中不但需要新增新的成員,還要過載兩個繼承方法。
類宣告**:
brass.h
類方法定義**:
brass.cpp
上述**多了乙個新的語法特性:虛函式(virtual function)。當基類宣告中函式前加virtual,表示該函式為虛函式。區別在於當呼叫者是引用或者指標時,呼叫的是基類方法,還是派生類過載後的方法。具體區別我們後邊在討論。重中之重在於虛析構函式的意義。如果程式中使用delete刪除占用的動態記憶體,且用於索引記憶體位址的指標型別是基類,那麼即使該指標指向的是乙個派生類物件,此時僅基類析構函式被呼叫。 我們著重觀察brassplus類過載的方法withdraw有什麼變化。這類客戶由於具有透支許可權,在取款時肯定要考慮欠款情況。若欲取出金額≤儲存金額,則直接呼叫基類方法withdraw,把儲存金額減小;若欲取出金額大於儲存金額,就必須進一步分析欠款情況。已欠款+此次欠款≤透支額度時,取款操作才有效。因此:owes+(amt - balance) ≤ maxloan,進一步變形為:amt ≤ balance+maxloan-owes。
三、應用程式示例及結果分析
usebrass.cpp
列印結果:
C 基礎 類繼承中方法過載
c 基礎 類繼承中方法過載 一 前言 二 過載方法及虛函式 我們討論 c primer plus 中的如下場景 銀行記錄客戶資訊,包括客戶姓名 當前餘額。客戶這一類別當然能夠建立客戶物件 存款 取款以及顯示資訊。銀行需要特殊記錄具有透支許可權的客戶,因此這一類別的客戶要額外記錄透支上限 透支貸款利率...
C 基礎 類繼承中方法過載
一 前言 二 過載方法及虛函式 我們討論 c primer plus 中的如下場景 銀行記錄客戶資訊,包括客戶姓名 當前餘額。客戶這一類別當然能夠建立客戶物件 存款 取款以及顯示資訊。銀行需要特殊記錄具有透支許可權的客戶,因此這一類別的客戶要額外記錄透支上限 透支貸款利率以及當前透支總額。此外,取款...
C 中方法過載
在方法的使用過程中,過載,重寫和隱藏是常用到的。下面著重介紹方法的這些使用。1 過載 過載是方法名不變,引數列表 引數型別或個數 不同的方法體現。注意 返回值可以相同也可以不同。當引數個數相同而引數型別不同的時候,可以考慮使用泛型,提高 的復用性。下面給出示例 public class func 2...