一、前言
成都創(chuàng)新互聯(lián)成立十年來,這條路我們正越走越好,積累了技術與客戶資源,形成了良好的口碑。為客戶提供成都做網(wǎng)站、網(wǎng)站建設、網(wǎng)站策劃、網(wǎng)頁設計、域名申請、網(wǎng)絡營銷、VI設計、網(wǎng)站改版、漏洞修補等服務。網(wǎng)站是否美觀、功能強大、用戶體驗好、性價比高、打開快等等,這些對于網(wǎng)站建設都非常重要,成都創(chuàng)新互聯(lián)通過對建站技術性的掌握、對創(chuàng)意設計的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進步。在上一篇C++基礎博文中討論了C++最基本的代碼重用特性——類繼承,派生類可以在繼承基類元素的同時,添加新的成員和方法。但是沒有考慮一種情況:派生類繼承下來的方法的實現(xiàn)細節(jié)并不一定適合派生類的需求,此時派生類需要重載集成方法。
二、重載方法及虛函數(shù)
我們討論《C++ Primer Plus》中的如下場景:銀行記錄客戶信息,包括客戶姓名、當前余額??蛻暨@一類別當然能夠創(chuàng)建客戶對象、存款、取款以及顯示信息。銀行需要特殊記錄具有透支權限的客戶,因此這一類別的客戶要額外記錄透支上限、透支貸款利率以及當前透支總額。此外,取款和顯示信息兩個操作必須考慮客戶的透支情況。綜上,具有透支權限的客戶是客戶這一基類的派生類,派生類中不但需要添加新的成員,還要重載兩個繼承方法。
類聲明代碼:
#ifndef BRASS_H_ #define BRASS_H_ #includeclass 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() {}//使用虛析構函數(shù)確保先調用繼承類析構函數(shù) }; //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
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。