欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    第十五章 面向对象编程Word下载.docx

    • 资源ID:3452381       资源大小:206.90KB        全文页数:43页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第十五章 面向对象编程Word下载.docx

    1、;4。 图书馆可以借阅不同种类的资料书、CD、DVD等等。不同种类的借阅资料有不同的登记、检查和过期规则。下面的类定义了这个应用程序可以使用的基类。指出在所有借阅资料中,哪些函数可能定义为虚函数,如果有,哪些函数可能是公共的。(注:假定LibMember是表示图书馆读者的类,Date是表示特定年份的日历日期的类。)class Library bool check_out( const LibMember& ); bool check_in( cosnt LibMember& bool is_late( const Date& today ); double apply_fine(); ostr

    2、eam& print( ostream& = count ); Date due_date() const; Date date_borrowed() const; string title() const; const LibMember& member() const; 因为有不同的登记、检查、和过期规则,所以 这几个函数应该被定义为虚函数,print函数可能用于打印不同的项目的内同,也定义为虚函数。 其他几个函数,因为操作都有公共性质,所以应该是公共的。5。如果有,下面的声明中哪些是错误的?class Base ;(a) class Derived : public Derived ;(

    3、b) class Derived : Base ;(c) class Derived : Private Base ;(d) class Derived : public Base;(e) class Derived : inherits Base ;(a) 错误,不能用类本身作为类的基类,(d) 声明类时,不可以包含派生列表。(e) 派生不能用inherits6。编写自己的Bulk_item类版本。class Bulk_item : public item_base double net_price( size_t cnt ) const if ( cnt min_qty ) return

    4、cnt * ( 1- discount ) * price; else return cnt * price; size_t min_qty; double discount;7。可以定义一个类型实现有限折扣策略。这个类可以给低于某个上限的购书量一个折扣,如果购买的数量超过该上限,则超出部分的书应按正常价格购买。定义一个类实现这种策略。class Ltd_item : Ltd_item( const string& book = “”, double sales_price, size_t qty = 0, double disc_rate = 0 ) : item_base( book, s

    5、ales_price), max_qty( qty ), discount( disc_rate ) if ( cnt = max_qty ) return cnt* price max_qty * discount * price; size_t max_qty;8。对于下面的类,解释每个函数:struct base string name() return basename; / 返回私有成员basename virtual void print( ostream &os ) os basename; / 打印私有成员basename string basename;struct deri

    6、ved void print() print( ostream &os ); os “ “ name();(d) pb2-(b) br1.print();(f) br2.print(); 用的是基类的print函数 用的是派生类的print函数 用的是基类的name函数10。在15.2.1节的习题中编写一个表示图书馆借阅政策的基类。假定图书馆提供下列种类的借阅资料,每一种有自己的检查和登记政策。将这些项目组成一个继承层次:book atdio book recordchildrens puppet sega video game videocdrom book Nintendo video g

    7、ame rental booksony playstation video game类book、record、childrens puppet、video继承自Library;类audio book ,cdrom book, rental book 继承自类book;类sega video game, Nintendo video game, sony playstation video game继承自类video.11。在下列包含一族类型的一般抽象中选择一种(或者自己选择一个),将这些类型组织成一个继承层次。(a) 图像文件格式( 如 gif, tiff, jpeg, bmp )(b) 几何

    8、图元(如矩形,圆,球形,锥形)(c) C+语言的类型(如类,函数,成员函数)对(b)中的几何图元组织成一个继承层次,基类Figure, 矩形Rectangle, 圆cicle, 球形 sphere,锥形 Cone继承自Figure类。12。对上题中选择的类,标出可能的虚函数以及public和protected成员。虚函数,比如计算图形面积的函数 virtual double area(); 计算体积的函数virtual double cubage(); 求周长的函数 virtual double perimeter();Figuer类的public 成员可能有两个图元的尺寸:xSize, yS

    9、ize,其他类的protected成员可能有cone类和球形的zSize即Z轴尺寸,还有13。对于下面的类,列出C1中的成员函数访问ConcreteBase的static成员的所有方式,列出C2类型的对象访问这些成员的所有方式。struct ConcreteBase static std:size_t object_count();size_t obj_count;struct C1 : public ConcreteBase / struct C2 : public ConcreteBase / C1中的成员函数访问基类的static成员可以用 ( 1) ConcreteBase:成员名(2

    10、) C1:(3) 通过C1类对象或对象的引用,使用( . )操作符访问(4) 通过C1类对象的指针,使用箭头(-)操作符访问(5) 直接使用成员名。 C2类型的对象访问时,只可以访问基类的成员函数,假如C2对象为obj_c2, 可用(1) obj_c2.object_count()(2) ConcreteBase:object_count()(3) C2:pbject_count()14。重新定义Bulk_item和item_base类,使每个类只需定义一个构造函数。book = “”, double sales_price = 0.0) : public Item_base Bulk_ite

    11、m ( const string &book = “” , double sales_price = 0.0, size_t qty = 0, double disc = 0.0 ): Item_base ( book, sales_price ), min_qty( qty ), discount ( disc ) 15。对于15.2.5节第一个习题中描述的图书馆类层次,识别基类和派生类构造函数。基类为 IS_A结构中的上边的类为下边的类的基类,派生类构造函数应在初始化列表中包含其直接基类以初始化继承成员和派生类自己的成员。16。对于下面的基类定义:(a) 没有在初始化列表中向基类构造函数传

    12、递实参,(b) 初始化列表中出现了非直接基类Base,(c ) 初始化列表中出现了非直接基类Base,而没有出现直接基类C1,(d) 初始化列表中使用了未定义变量id(e) 缺少了初始化列表,基类没有默认构造函数,其派生类必须用初始化列表对基类的构造函数传递实参。17。说明在什么情况下类应该具有虚析构函数。作为基类使用的类应该具有虚析构函数,以保证在删除指向动态分配对象的基类指针时,根据指针实际指向的对象所属的类型运行适当的析构函数。18。虚析构函数必须执行什么操作?虚析构函数可以为空,即不执行任何操作,而当类中有指针类成员时,则需要自己定义虚析构函数,以对指针成员进行适当的清除。19。如果这

    13、个类定义有错,可能是什么错?可能是因为该类可能作为基类使用,所以这时必须定义虚析构函数。而这个类没有定义虚析构函数。20。回忆在13.3节习题中编写的类,该类的复制控制成员打印一条消息,为Item_base和Bulk_item类的构造函数增加打印语句,定义复制控制成员,使之完成与合成版本相同的工作外,还打印一条消息,应用使用了Item_base类型的那些对象和函数编写一些程序,在每种情况下,预测将会创建和撤销什么对象,并将你的预测与程序所产生的结果进行比较。继续实验,直至你能够正确地预测对于给定的代码片段,会执行哪些复制控制成员。#include ostream stringusing nam

    14、espace std;book = isbn( book ), price( sales_price ) cout Using Item_bases constructor. endl; virtual Item_base() s destructor. system(pause); friend ostream &operator ( ostream & , Item_base &ostream& os, Item_base & ib)tUsing operator endl tVisit Item_base s book():t ib.isbn endls net_price():t3 i

    15、b.book() , the price is: _price( 3 ) return os;book =, double sales_price = 0.0, size_t qty = 0, double disc = 0.0 ): Item_base ( book, sales_price ), min_qty( qty ), discount ( disc ) Using Bulk_item Bulk_item() os, Bulk_item & bi ) , Bulk_item & )tVisit Bulk_item bi .book() t5 bi.book() bi .net_pr

    16、ice( 5 ) int _tmain(int argc, _TCHAR* argv) Item_base base( C+Primer, 42.00 ); Bulk_item bulk( How to program, 50.32, 3, 0.2); cout base bulk system( return 0;21。重新定义Item_base层次以包含Disc_item类。class Disc_item: Disc_item ( const string& book = “”, double sales_price = 0.0, size_t qty = 0, double disc =

    17、 0.0 ) : Item_base ( book, sales_price ), quantity ( qty ), dicount ( disc ) double net_price( size_t cnt )= quantity ) std:pair discount_policy() const return std:make_pair( quantity, discount ); size_t quantity;22。重新定义Bulk_base和习题15.2.3节中实现的那个表示有限折扣策略的类,继承含Disc_item类。 Item_base ( book, sales_price ), quantity ( qty ), discount ( disc ) return cnt * ( 1- discount )


    注意事项

    本文(第十五章 面向对象编程Word下载.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开