C++程序设计教程10Chapter10.pptVIP

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C程序设计教程10Chapter10

第10章 继承 内容提要 本章主要介绍继承的基本概念。介绍继承的必要性、继承的实现方式以及继承中的静态数据成员。 介绍了基类指针的概念、如何使用继承下的构造函数与析构函数以及调用基类的成员函数。详细介绍了protected关键字的用法; 简要介绍了私有继承和保护继承的概念和使用方法。最好介绍其他的代码重用方式:容器类。 继承的基本概念 继承是面向对象程序设计中最重要的机制。 通过继承机制可以扩充和完善旧的程序设计以适应新的需求,这样可以节省程序开发的时间和资源。 继承的必要性 在现实生活中,有时候需要表示一类或者一系列具有相同特点的对象,比如处理对象“人”的时候,可以这样定义类Person: class Person { private: char * name; int age; public: char * getInfo() {...} }; 继承的必要性 在同一程序中,为了描述和处理学生信息,定义类Student,该类中包括私有数据成员姓名、年龄和学校等等,Student类定义为: 继承关系来简化编码 实现Person类和Student类的继承关系 案例名称:实现Person类和Student类的继承关系 程序名称:proj10_01.cpp ? #include iostream.h class Person { private: char * name; int age; public: void getInfo() {cout name age endl;} setAge (int a) { age = a;} setName ( char * c) { name = c;} }; class Student : public Person { private: char * school; public: ? }; void main() { Student s; s.setAge(18) ; s.setName(Jack); s.getInfo(); } 继承的实现方式 C++语言支持两种继承:单继承和多继承。只有一个基类的继承,被称为单继承。 多继承,是指一个派生类拥有两个或两个以上的基类。使用运算符“:”实现继承关系,继承关系有3种:public继承、protected继承和private继承。 查看数据成员的内存地址 案例名称:查看数据成员的内存地址 程序名称:proj10_02.cpp ? #include iostream.h class A { public: A(){a = 1;} // 以class A 建立的对象初值都设a=1 int a; }; class B : public A { public: B(){b = 2;} // 以class B 建立的对象初值都设b=2 int b; }; void main() { A objA; B objB; cout sizeof(objA) = sizeof(objA) \n; cout sizeof(objB) = sizeof(objB) \n; /* 观察objA与objB对象,成员地址 */ cout objA objA.a \n; cout objB objB.a objB.b \n; cout objA.a \n; cout objB.a objB.b \n; } 数据成员的内存地址 可以看出,在派生类中只定义了一个变量b,由于继承了基类中的变量a,所以长度为8。对象的首地址和第一个数据成员的地址相同。 继承中的静态数据成员 案例名称:继承中的静态数据成员 程序名称:proj10_03.cpp ? #include iostream.h class A { public: A(){a = 1;} // 以class A 建立的对象初值都设a=1 int a; static int c; }; int A::c = 5; class B : public A { public: B(){b = 2;} // 以class B 建立的对象初值都设b=2 int b; }; void main() { A objA; B objB; cout sizeof(objA) = sizeof(objA) \n; cout sizeof(objB) = sizeof(objB) \n; cout A::c B::c \n; } 基类和派生类的

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档