c++ primer 习题 15
来源:互联网 发布:java源代码混淆 编辑:程序博客网 时间:2024/06/03 21:32
#include <conio.h>
#include <iostream.h>
#include <string>
class item_base
{
public:
item_base(const std::string & book = "" ,double sale_price= 0.0):isbn(book),price(sale_price){}
virtual ~item_base(){}
std::string book()const {return isbn;}
virtual double net_price(std::size_t n){return n*price ;}
protected:
double price;
private:
std::string isbn;
};
class bulk_item:public item_base
{
public:
double net_price(std::size_t)const;
private:
std::size_t min_number;
double discount;
};
double bulk_item::net_price(std::size_t number)const
{
if(number>=min_number)
{
return number*discount;
}
else
{
return number*price;
}
}
class dls_item : public item_base
{
public:
dls_item(const std::string & book = "",double sale_price = 0.0,int min_num= 10,
int max_num=100,double dis_count=0.2 ):item_base(book,sale_price),min_number(min_num),
max_number(max_num),discount(dis_count){}
double net_price(std::size_t)const;
private:
int min_number;
int max_number;
double discount;
};
double dls_item::net_price(std::size_t number) const
{
if(number > max_number)
{
return (number-max_number)*price+max_number*(1-discount)*price;
}
else if(number<=max_number && number>= min_number)
{
return number*(1-discount)*price;
}
else
{
return number*price;
}
}
int main()
{
item_base temp("hehh",12.0);
getch();
return 0;
}
- C++primer第15章习题解答
- c++primer 习题9.12
- c++primer 习题9.35
- c++primer 习题9.36
- c++primer 习题9.18
- c++primer 习题9.20
- c++primer 习题9.42
- c++primer 习题9.43
- c++primer 习题9.26
- C++Primer习题6.12
- C++primer习题6.20
- C++Primer习题9.26
- C++Primer 习题9.38
- C++Primer 习题9.39
- C++Primer习题9.40
- C++Primer习题10.9
- C++Primer习题6.12
- C++primer 习题6.22
- 职场与自己想要的生活
- Kdump如何配置
- ReadOnly和Const的区别
- 修改android框架代码
- 【Silverlight】Bing Maps系列文章目录
- c++ primer 习题 15
- hibernate char 字段的数据表只查出一个字符——问题积累
- 预览本地图片(兼容IE7|IE8|Firefox)
- C#组件属性说明
- Oracle 字符集
- 数据更新
- Android framework analysis (partI)
- 注册
- C#修饰符说明