C++程序设计 教学课件 作者 张桦第7章 面向对象程序设计.ppt

C++程序设计 教学课件 作者 张桦第7章 面向对象程序设计.ppt

ID:50318763

大小:1.22 MB

页数:147页

时间:2020-03-08

C++程序设计 教学课件 作者 张桦第7章 面向对象程序设计.ppt_第1页
C++程序设计 教学课件 作者 张桦第7章 面向对象程序设计.ppt_第2页
C++程序设计 教学课件 作者 张桦第7章 面向对象程序设计.ppt_第3页
C++程序设计 教学课件 作者 张桦第7章 面向对象程序设计.ppt_第4页
C++程序设计 教学课件 作者 张桦第7章 面向对象程序设计.ppt_第5页
资源描述:

《C++程序设计 教学课件 作者 张桦第7章 面向对象程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C++程序设计第7章面向对象程序设计7.1基于过程与面向对象的设计思想7.2继承7.3虚函数7.4面向对象程序设计7.5面向对象程序设计示例7.6本章小结第7章面向对象程序设计游戏准备:猜先、让子等黑子先走绘制棋局画面判断输赢白棋下子绘制棋盘画面判断输赢返回步骤2输出棋局结果7.1基于过程与面向对象的设计思想玩家对象:黑白双方,这两方的行为是一模一样的棋盘对象:负责绘制棋局画面裁判对象:规则系统,负责判定诸如犯规、输赢等。玩家对象接受用户输入,通告棋盘对象,棋盘对象更新棋局画面,同时由裁判对象负责棋局判定。基于过程

2、的程序设计面向对象的程序设计7.2继承在面向对象程序设计中,程序由类构成,继承关系是类之间最主要的关系继承表达“是一种(“isa”)”关系类Car、Boat、Submarine分别继承Vehicle类,通过继承获得Vehicle类的属性(数据成员)和方法(成员函数)派生类各自实现Vehicle类界定的派生类必须支持的行为派生类还可以添加特有的其他属性和方法继承背后的主要目的是扩展和代码重用classVehicle{//…};//“:”表示Car继承自Vehicle,称Vehicle为基类,Car为派生类classC

3、ar:publicVehicle{//…};classBoat:publicVehicle{//…};classSubmarine:publicVehicle{//…};7.2继承在C++中,称被继承的类为基类(baseclass),称继承得到的新类为派生类(derivedclass)7.2.1派生类的定义派生类的定义:class<派生类类名>:

4、protected

5、private><基类类名>{//派生类的成员声明};关键字public代表公有继承,如果换成protected,就是保护继承,换成pr

6、ivate就是私有继承,C++支持public、protected和private三种类间继承机制,关键字public、private和protected描述基类成员在派生类中的可见性。7.2.1派生类的定义在类继承体系中,基类定义了所有派生类共有的对外公开接口(publicinterface),派生类继承基类的成员(成员函数和数据成员),派生类还可以改写(override)继承来的成员函数,或者增加新的成员,以实现其独特的行为。注意:类继承中的关键字public、private和protected描述的是基类成员

7、在派生类中的可见性,而类定义中的public、private和protected是对类成员可见性的约束,不能混淆。7.2.2继承的3种方式1、public继承public继承保留基类成员函数和数据成员的可见性不变:基类的public成员,在派生类中还是public的基类的protected成员,在派生类中还是protected的基类的private成员对派生类不可见,派生类中不可以调用基类的private成员在类的public、private和protected三种继承中,派生类都不能访问基类的private成员,

8、从而给了基类一定的私有空间,在基类的private部分改变时,不影响派生类。classPeople{//基类public:walk();eat();private://…};classStudent:publicPeople{//派生类public:study();};public继承需要满足派生类“isa”基类,满足面向对象理论中Liskov替换原则:LSPpublic继承public继承表达的关系是:People类是Student类的基类,Student类是People类的一个派生类,Student类“是一种(

9、“isa”)”People类,如果不能推导出“isa”关系,就不应该使用public继承。在这里,“isa”是形象的说法,并不严格,public继承要求满足的是面向对象理论中的Liskov替换原则(LiskovSubstitutionPrinciple,LSP),意思是“从行为上而言,派生类应该可以完全替换基类完成基类的行为”。public继承下面是一个误用public继承的例子:classRectangle{public://…virtualvoidsetHeight(intnewHeight);virtualv

10、oidsetWidth(intnewWidth);virtualintheight()const;//返回heightvirtualintwidth()const;//返回width//…};classSquare:publicRectangle{//…setLength(intnewLength);};public继承Squares;s.setWidth(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。