15.2.3. 派生类

#include<iostream>

#include<string>

#include<vector>



using namespace std;



/*15.2.1. 定义基类*/

class item_base

{

private:

	std::string isbn;

protected:

	double price;

public:

	item_base(const std::string& book="",double sale_price=0.0):isbn(book),price(sale_price){}

	std::string book()const{return isbn;}



	virtual double net_price(size_t n)const{

		return n*price;

	}

	virtual ~item_base(){}

	

};



/*定义派生类

在书店应用程序中,将从 Item_base 类派生 Bulk_item 类,因此 

Bulk_item 类将继承 book、isbn 和 price 成员。Bulk_item 类必须重定义 

net_price 函数定义该操作所需要的数据成员: */

class bulk_item:public item_base

{

public:

	double net_price(size_t )const;

private:

	double discount;

	std::size_t mity;

};



/*因为每个派生类对象都有基类部分,类可以访问共基类的 

public 和 protected 成员,就好像那些成员是派生类自己的

成员一样。*/

double bulk_item::net_price(size_t cnt)const

{

	if(cnt>=mity)

		return cnt*(1-discount)*price;

	else

		return cnt*price;

}



int main()

{



}

  

你可能感兴趣的:(类)