您的位置:首页 > 编程语言 > C语言/C++

c++ primer 习题 15

2010-06-10 16:22 288 查看
#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++ string class include