欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    C++语言程序设计(清华大学郑莉)07.ppt

    • 资源ID:166507       资源大小:601.50KB        全文页数:73页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    C++语言程序设计(清华大学郑莉)07.ppt

    1第七章第七章 继承与派生继承与派生C+语言程序设计C+语言程序设计2本章主要内容本章主要内容l类的继承类的继承l类成员的访问控制类成员的访问控制l单继承与多继承单继承与多继承l派生类的构造、析构函数派生类的构造、析构函数l类成员的标识与访问类成员的标识与访问l深度探索深度探索C+语言程序设计3类的继承与派生类的继承与派生l保持已有类的特性而构造新类的过程保持已有类的特性而构造新类的过程称为继承。称为继承。l在已有类的基础上新增自己的特性而在已有类的基础上新增自己的特性而产生新类的过程称为派生。产生新类的过程称为派生。l被继承的已有类称为基类(或父类)。被继承的已有类称为基类(或父类)。l派生出的新类称为派生类。派生出的新类称为派生类。C+语言程序设计4继承与派生问题举例继承与派生问题举例工具车轿车面包车小汽车卡车旅行车汽车汽车交通工具交通工具类的继承与派生C+语言程序设计5继承与派生问题举例继承与派生问题举例猴子猴子狮子虎猎豹猫猫鸟鸟动物动物类的继承与派生猫科猫科C+语言程序设计6继承与派生问题举例继承与派生问题举例圆圆矩形矩形几何形状几何形状类的继承与派生C+语言程序设计7继承与派生问题举例继承与派生问题举例兼职技术人员销售经理管理人员销售人员雇员类的继承与派生C+语言程序设计8继承与派生的目的继承与派生的目的l继承的目的:实现代码重用。继承的目的:实现代码重用。l派生的目的:当新的问题出现,原有派生的目的:当新的问题出现,原有程序无法解决(或不能完全解决)时,程序无法解决(或不能完全解决)时,需要对原有程序进行改造。需要对原有程序进行改造。类的继承与派生C+语言程序设计9派生类的声明派生类的声明class 派生类名:派生类名:继承方式继承方式 基类名基类名 成员声明;成员声明;类的继承与派生C+语言程序设计10继承方式继承方式l三种继承方式三种继承方式 公有继承 私有继承 保护继承l不同继承方式的影响主要体现在:不同继承方式的影响主要体现在:派生类成员成员对基类成员的访问权限通过派生类对象对象对基类成员的访问权限类成员的访问控制C+语言程序设计11公有继承公有继承(public)l基类的基类的public和和protected成员的访问成员的访问属性在派生类中属性在派生类中保持不变保持不变,但,但基类的基类的private成员成员不可不可直接直接访问访问。l派生类中的派生类中的成员函数成员函数可以直接访问基类可以直接访问基类中的中的public和和protected成员,但不能成员,但不能直接访问基类的直接访问基类的private成员。成员。l通过派生类的通过派生类的对象对象只能访问基类的只能访问基类的public成员。成员。类成员的访问控制C+语言程序设计12例例7-1 公有继承举例公有继承举例/基类基类PointPoint类的定义类的定义class Point class Point public:public:/公有函数成员公有函数成员void void initPointinitPoint(float x = 0, float y = 0) (float x = 0, float y = 0) this-x = x; this-y = y; this-x = x; this-y = y;void move(float void move(float offXoffX, float , float offYoffY) ) x += x += offXoffX; y += ; y += offYoffY; ; float float getXgetX() const return x; () const return x; float float getYgetY() const return y; () const return y; private:private:/私有数据成员私有数据成员float x, y;float x, y;类成员的访问控制class Rectangle: public Point class Rectangle: public Point /派生类定义部分派生类定义部分public:public:/新增公有函数成员新增公有函数成员void void initRectangleinitRectangle(float x, float y, float w, (float x, float y, float w, float h) float h) initPointinitPoint(x, y); (x, y); /调用基类公有成员函数调用基类公有成员函数this-w = w;this-w = w;this-h = h;this-h = h; float float getHgetH() const return h; () const return h; float float getWgetW() const return w; () const return w; private:private:/新增私有数据成员新增私有数据成员float w, h;float w, h;13#include #include #include #include using namespace std;using namespace std;intint main() main() Rectangle Rectangle rectrect; ;/定义定义RectangleRectangle类的对象类的对象/设置矩形的数据设置矩形的数据rect.rect.initRectangleinitRectangle(2, 3, 20, 10);(2, 3, 20, 10);rect.rect.movemove(3,2);(3,2);/移动矩形位置移动矩形位置coutcout The data of The data of rectrect( (x,y,w,hx,y,w,h): ): endlendl; ;/输出矩形的特征参数输出矩形的特征参数coutcout rect.getXrect.getX() , () , rect.getYrect.getY() () , , rect.getWrect.getW() , () , rect.getHrect.getH() () w = w;this-w = w;this-h = h;this-h = h; void move(float void move(float offXoffX, float , float offYoffY) ) Point:move(Point:move(offXoffX, , offYoffY);); float float getXgetX() const () const return Point:return Point:getXgetX(); (); float float getYgetY() const () const return Point:return Point:getYgetY(); (); float float getHgetH() const return h; () const return h; float float getWgetW() const return w; () const return w; private:private:/新增私有数据成员新增私有数据成员float w, h;float w, h;类成员的访问控制#include #include #include #include using namespace std;using namespace std;intint main() main() Rectangle Rectangle rectrect; ; /定义定义RectangleRectangle类的对象类的对象rect.rect.initRectangleinitRectangle(2, 3, 20, 10);(2, 3, 20, 10); /设置矩形的数据设置矩形的数据rect.rect.movemove(4,2);(4,2); /移动矩形位置移动矩形位置coutcout The data of The data of rectrect( (x,y,w,hx,y,w,h): ): endlendl; ;coutcout rect.rect.getXgetX() , () , /输出矩形的特征参数输出矩形的特征参数 rect.rect.getYgetY() , () , rect.rect.getWgetW() , () , rect.rect.getHgetH() () endlendl; ;return 0;return 0; 17The data of rect(x,y,w,h):6, 5, 20, 10Press any key to continueC+语言程序设计18保护继承保护继承(protected)l基类的基类的public和和protected成员都以成员都以protected身份出现身份出现在派生类中,但在派生类中,但基类的基类的private成员成员不可直接访问不可直接访问。l派生类中的派生类中的成员函数成员函数可以直接访问基可以直接访问基类中的类中的public和和protected成员,但成员,但不能直接访问基类的不能直接访问基类的private成员。成员。l通过派生类的通过派生类的对象对象不能直接访问基类不能直接访问基类中的任何成员中的任何成员类成员的访问控制C+语言程序设计19protected 成员的特点与作用成员的特点与作用l对建立其所在类对象的模块来说,它对建立其所在类对象的模块来说,它与与 private 成员的性质相同。成员的性质相同。l对于其派生类来说,它与对于其派生类来说,它与 public 成成员的性质相同。员的性质相同。l既实现了数据隐藏,又方便继承,实既实现了数据隐藏,又方便继承,实现代码重用。现代码重用。类成员的访问控制C+语言程序设计20例例7-3 protected 成员举例成员举例class A class A protected:protected:intint x; x;intint main() main() A A a a; ;a.xa.x = 5; / = 5; /错误错误 类成员的访问控制class A class A protected:protected:intint x; x;class B: public Aclass B: public Apublic:public:void function();void function();void B:function() void B:function() x = 5; /x = 5; /正确正确 21void main() B b; b.x=5; C+语言程序设计22类型兼容规则类型兼容规则l一个公有派生类的对象在使用上可以一个公有派生类的对象在使用上可以被当作基类的对象,反之则禁止。具被当作基类的对象,反之则禁止。具体表现在:体表现在: 派生类的对象可以隐含转换为基类对象。 派生类的对象可以初始化基类的引用。 派生类的指针可以隐含转换为基类的指针。l通过基类对象名、指针只能使用从基通过基类对象名、指针只能使用从基类继承的成员类继承的成员类型兼容C+语言程序设计23例例7-4 类型兼容规则举例类型兼容规则举例#include #include using namespace std;using namespace std;class Base1 /class Base1 /基类基类Base1Base1定义定义public:public:void display() void display() constconst coutcout Base1:display() Base1:display() endlendl; ;

    注意事项

    本文(C++语言程序设计(清华大学郑莉)07.ppt)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

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




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

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开