通过继承将基类和派生类联系在一起.新出现的知识点有虚函数,protected关键字,动态绑定.
[练习]:定义Quote类,保存书的信息.作为一个基类,后续将会定义其他派生类(保存打折书籍的信息),以及一个打印书信息的函数(通过动态绑定来判断调用那种类的函数).
class Quote
{
public:
Quote() = default;
Quote(const string& s, const double Sales_price) :bookNo(s), price(Sales_price){}
virtual double net_price(size_t n)const{ return price*n; }
string isbn()const{ return bookNo; }
virtual ~Quote(){}
private:
string bookNo;
protected:
double price;
};
double print_total(ostream& os,Quote& sales, size_t n)
{
auto ret = sales.net_price(n);
os << "ISBN: " &