c++ primer(第五版) 定义基类与派生类

来源:互联网 发布:价税合计算法 编辑:程序博客网 时间:2024/05/23 15:47
#include<iostream>#include<string>#include<vector>using namespace std; using std::vector; using std::string;class Quote{public:    Quote() = default;    Quote(const string &book,double Sales_price):bookNo(book),price(Sales_price)  {}    string  isbn()   const { return bookNo; }    virtual double net_price(size_t n)  const { return n*price; }    virtual ~Quote() = default;private:    string bookNo;protected:    double price = 0;};class Bulk_quote :public Quote{public:    Bulk_quote() = default;    Bulk_quote(const string& book, double p, size_t qty, double disc)        :Quote(book, p), min_qty(qty), discount(disc)    {    }    double net_price(size_t)  const override;private:    size_t min_qty = 0;    double discount = 0.0;};double Bulk_quote::net_price(size_t cnt) const{    if (cnt >= min_qty)        return cnt*(1 - discount)*price;    else        return cnt*price;}

基类中虚函数的定义 virtual
派生类对虚函数的声明 override
访问说明符 private public protected

基类的指针和引用可以 指向和绑定在 派生类中
派生类的指针和引用 不能 指向和绑定到基类中

对于protected 基类希望它的派生类有权访问该成员,同时禁止其他用户访问。

阅读全文
0 0
原创粉丝点击