一、前言

在上一篇C++基礎博文中討論了C++最基本的代碼重用特性——類繼承,派生類可以在繼承基類元素的同時,添加新的成員和方法。但是沒有考慮一種情況:派生類繼承下來的方法的實現細節并不一定適合派生類的需求,此時派生類需要重載集成方法。
二、重載方法及虛函數
我們討論《C++ Primer Plus》中的如下場景:銀行記錄客戶信息,包括客戶姓名、當前余額。客戶這一類別當然能夠創建客戶對象、存款、取款以及顯示信息。銀行需要特殊記錄具有透支權限的客戶,因此這一類別的客戶要額外記錄透支上限、透支貸款利率以及當前透支總額。此外,取款和顯示信息兩個操作必須考慮客戶的透支情況。綜上,具有透支權限的客戶是客戶這一基類的派生類,派生類中不但需要添加新的成員,還要重載兩個繼承方法。
類聲明代碼:
#ifndef BRASS_H_
#define BRASS_H_
#include <string>
class Brass
{
private:
std::string fullName;
long acctNum;
double balance;
public:
Brass(const std::string& s = "Nullbody",long an = -1,double ba = 0.0);//default constructor
void Deposit(double amt);
double Balance() const;
virtual void Withdraw(double amt);//virtual function
virtual void ViewAcct() const;
virtual ~Brass() {}//使用虛析構函數確保先調用繼承類析構函數
};
//brass plus account class
class BrassPlus:public Brass
{
private:
double maxLoan;
double rate;
double owesBank;
public:
BrassPlus(const std::string& s = "Nullbody",long an = -1,
double bal = 0.0,double ml = 500,double r = 0.11125);
BrassPlus(const Brass& ba,double ml = 500,double r = 0.11125);
virtual void ViewAcct() const;
virtual void Withdraw(double amt);
void ResetMax(double m) {maxLoan = m;}//inline function
void ResetRate(double r) {rate = r;}
void ResetOwes() {owesBank = 0;}
};
#endif
brass.h另外有需要云服務器可以了解下創新互聯建站www.yijiale78.com,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網站題目:詳解C++基礎——類繼承中方法重載-創新互聯
分享鏈接:http://www.yijiale78.com/article42/dpdhhc.html
成都網站建設公司_創新互聯,為您提供App設計、ChatGPT、網站設計、小程序開發、自適應網站、網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯