码迷,mamicode.com
首页 > 其他好文 > 详细

15.2.3. 派生类

时间:2015-04-07 17:27:09      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:

#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()
{

}

  

15.2.3. 派生类

标签:

原文地址:http://www.cnblogs.com/yanliang12138/p/4398728.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!