加文

希望是美好的……
随笔 - 0, 文章 - 209, 评论 - 0, 引用 - 0
数据加载中……

虚函数与非虚函数

在书店的例子中,我们定义一个基类,命名为Item_base,表示未打折的书;第二个类继承Item_base,命名为Bulk_item,表示数量折扣销售的书。
这些类至少定义如下操作:
1,名为book的操作,返回ISBN
2,  名为net_price的操作,返回购买指定数量的书的价格。
Item_base的派生类将无须改变地继承book函数:派生类不需要重新定义获取ISBN的含义,另外一方面,每个派生类需要定义自己的net_price函数版本,以实现适当的折扣价格策略。
在C++中,基类必须指出希望派生类定义那些函数,定义为virtual的函数,都是基类期待的派生类,基类希望派生类继承的函数不能定义为虚函数。
通过讨论,可以定义三个函数:
非虚函数,std::string book(),返回ISBN,由Item_base定义,Bulk_item继承。
虚函数:double net_price(size_t)的两个版本,返回给定数据的某书的总价。

posted on 2012-03-23 23:14 加文 阅读(203) 评论(0)  编辑 收藏 引用 所属分类: C++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理