以quote基類和bulk_quote派生類為例,記錄標頭檔案和cpp檔案的構成。
目錄
基類和派生類的標頭檔案及cpp檔案結構
quote.h
quote.cpp
bulk_quote.h
bulk_quote.cpp
main.cpp
#ifndef quote_h
#define quote_h
#includeclass quote
std::string isbn() const
virtual double net_price(std::size_t n) const; //虛函式:由派生類派根據折扣來重寫
private:
std::string bookno; //只被基類的函式使用
protected:
double price=0.0; //會被被派生類改寫的函式使用
};#endif
#include"quote.h"
double quote::net_price(std::size_t n) const
#ifndef bulk_quote_h
#define bulk_quote_h
#include"quote.h"
class bulk_quote:public quote
; //覆蓋基類虛函式
double net_price(std::size_t n) const override;
private:
//派生類的新成員
std:size_t min_qty=0;
double discount=0.0;
};#endif
#include"bulk_quote.h"
double bulk_quote::net_price(std::size_t n) const
#include#include"quote.h"
#include"bulk_quote.h"
using std::cout;
using std::endl;
using std::ostream;
//將基類物件的引用作為引數
double print_total(ostream &os,const quote &item,size_t n)
int main()
第15章 物件導向程式設計
派生類中的虛函式可以返回基類函式所返回型別的派生類的引用或指標。只有指定為虛函式的成員函式才能進行動態繫結。派生類可以進一步限制但不能放鬆對所繼承的成員的訪問。使用private或protected派生的類不繼承基類的介面,稱為實現繼承。使用class保留字定義的派生類預設具有private繼承,而...
第15章 物件導向程式設計 3
15.2.4 virtual與其他成員函式 c 中的函式呼叫預設不使用動態繫結。要出動動態繫結,必須滿足兩個條件 第一,只有指定為虛函式的成員函式才能進行動態繫結,成員函式預設為非虛函式,非虛函式不進行動態繫結 第二,必須通過基類型別的引用或指標進行函式呼叫。1.從派生類到基類的轉換 因為每個派生類...
第15章 物件導向程式設計 4
15.2.5 公有 私有和受保護的繼承 對類所繼承的成員的訪問由基類中的成員訪問級別和派生類派生列表中使用的訪問標號共同控制。每個類控制它所定義的成員的訪問。派生類可以進一步限制但不能放鬆對所繼承的成員的訪問。派生類不能訪問基類的private成員,也不能使自己的使用者能夠訪問那些成員。如果基類成員...