c++ 转换与继承

来源:互联网 发布:java汽车销售管理系统 编辑:程序博客网 时间:2024/06/04 18:53



#include <iostream>#include <string>using namespace std;using std::string;  class Item_base {public:    Item_base(const std::string &book = "",               double sales_price = 0.0):                     isbn(book), price(sales_price) { }    std::string book() const { return isbn; }        virtual double net_price(std::size_t n) const                { return n * price; }    virtual ~Item_base() { } private:    std::string isbn;   protected:    double price;       };class Bulk_item : public Item_base {public:       double net_price(std::size_t) const;       void memfcn(const Bulk_item &d, const Item_base &b);private: std::size_t min_qty;        double discount;}; double Bulk_item::net_price(size_t cnt) const{if(cnt >= min_qty)              return cnt * (1 - discount) * price;        else              return cnt * price;}void Bulk_item::memfcn(const Bulk_item &d, const Item_base &b){double ret = price;        ret = d.price;       }int main(){Bulk_item bulk;Item_base item(bulk);  //okitem = bulk; //okItem_base base;Bulk_item *bulkP = &base;  //errorBulk_item &buklRef = base;  //errorBulk_item bulk = base;     //errorItem_base *itemP = &bulk;  // okBulk_item *bulkP = itemP;  //error} 


原创粉丝点击