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;
}

浙公网安备 33010602011771号