1.5.2.2 节练习

练习15.4:下面哪条声明语句是不正确的?请解释原因。

class Base { ... };
(a)class Derived : public Derived { ... };
(b)class Derived : private Base { .. };
(c)class Derived : public Base;

(a)错误:不能用类本身作为类的基类。
(c)错误:声明类时不可以包含派生列表。

练习15.5:定义你自己的 Bulk_quote 类。

class Bulk_quote : public Quote
{
public:
      double net_price(size_t cnt) const override
      {
            if(cnt >= min_qty)
                  return cnt * (1 - discount) * price;
            else
                  return cnt * price;
      } 
private:
      size_t min_qty;
      double discount;
}

练习15.6:将 Quote 和 Bulk_quote 的对象传给 15.2.1 节练习中的 print_total 函数,检查该函数是否正确。

编写简单的主函数,声明 Quote 和 Bulk_quote 对象,调用 print_total 函数即可。

练习15.7:定义一个类使其实现一种数量受限的折扣策略,具体策略:当购买书籍的数量不超过一个给定的限量时享受折扣,如果购买量一旦超过了限量,则超出部分将以原价销售。

class Limited_quote : public Quote
{
public:
      double net_price(size_t cnt) const override
      {
            if(cnt <= min_qty)
                  return cnt * (1 - discount) * price;
            else
                  return min_qty * (1 - discount) * price + (cnt - min_qty) * price;
      }
private:
      size_t min_qty;
      double discount;
}
posted @ 2020-06-27 18:41  CodeWithMe  阅读(135)  评论(0)    收藏  举报