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}