#include
#include
class
quote
std::string isbn()
const
virtual
double
net_price
(std::size_t n)
const
virtual
~quote()
protected
:double price;
private
: std::string bookno;
};
①、錯誤,類不能繼承自本身
②、正確
③、錯誤,類的宣告中不能包含它的派生列表
class
bulk_quote
:public quote
//virtual double net_price(size_t) const;//重新宣告,與下面的方式作用相同
double
net_price
(std::size_t cnt)
const
;//允許派生類顯示的註明它將使用哪個成員函式改寫基類的虛函式
else
}private
:double discount;
std::size_t min_qty;
};
基類需要虛析構函式,需要動態銷毀物件。
如果刪除了quote基類的預設建構函式,那麼它所有派生類中都不能使用預設建構函式進行初始化物件,如果需要預設初始化,則會報錯。
#include
#include
#include
class
quote
quote
(const quote &obj)
quote &
operator=(
const quote &obj)
quote
(const quote &&obj)
quote &
operator=(
const quote &&obj)
std::string isbn()
const
virtual
double
net_price
(std::size_t n)
const
virtual
void
debug()
virtual
~quote()
protected
:double price;
private
: std::string bookno;};
intmain
(void
)
知識點1:容器和存在關係的型別無法相容,當派生類的物件被賦值給基類物件時,會把派生類的部分切掉。 c primer 第五版課後習題 第五章
第五章主要講了函式 include include include include using namespace std void test 5 9 std cout 母音字母個數為 t cnt endl void test 5 10 std cout 母音字母a的個數為 t cnt a endl...
C Primer第五版 第五章 程式設計題
5.9 編寫一段程式,使用一系列if語句統計從cin讀入的文字中有多少母音字母。include void main std cout a acnt std endl std cout e ecnt std endl std cout i icnt std endl std cout o ocnt s...
C primer 第十五章筆記 初稿
抽象,繼承與動態繫結都是基礎的方法。新標準新增override關鍵字,用於顯示宣告改寫基類虛函式,乙個重要的好處是讓編譯器幫助我們發現一些覆蓋時的失誤。動態繫結一般通過指標 引用 實現。虛函式派生類 final關鍵字 虛函式返回的型別通常與基函式匹配,但如果返回類本身指標可以不同,前提是派生類到基類...