第5部分派生类.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 派生类 5.1 派生类的概念 基类对象 #includeiostream.h class A { int pri; public: int pub; void set_pri(int a) {pri=a;} void set_pub(int a) {pub=a;} void out_pri() { coutpri“ ”; } }; 基类对象 objA 例 5-2 描述串的类 class string { int length; char * contents; public: string( ) {length=0; contents=0;} ~string( ); int get_length( ) {return length;} char * get_contents( ) { return contents;} void set_contents(int in_length, char * in_contents); void set_contents(char * in_contents); }; C++语言允许派生类可以重新定义基类的成员。如果派生类定义了与基类同名的成员,称派生类的成员覆盖了基类的同名成员。 如果要在派生类中使用基类的同名成员,可以显式的使用下述类名限定符: 类名::成员 此外可以,用下面的方法访问全局变量: ::成员 例5-3 class base { public: int a,b;} class derived: public base { public: int b,c; }; 一个派生类从外部看,非常类似一个基类,但内部则有不同。 特别是,一个派生类没有权力访问它的基类的私有数据,就像其他任何类一样。 例如,edit_string类不能直接访问string类的contents域或length域。如果edit_string类的成员函数要使用contents,必须调用get_contents()来得到它。 一个类的私有成员对其他类不可以访问的原因是确保没有其他类的成员函数依赖它们。这就允许软件适应未来的改变,赋予面向对象方法以更大的能力。 当从现成的类派生出新类时,派生类有以下功能: 1) 增加新的数据成员。 2) 增加新的成员函数。 3) 重新定义数据成员。 4) 重新定义成员函数。 5.1.2 保护段 一个派生类继承其基类时,基类的所有私有段的成员不能被派生类访问。 例5-4 基类是否存在这样一类成员? 它们可以被派生类访问,但不能被其他类访问。除了基类和它的派生类可以看到这部分成员外,对其他类如同私有段成员一样。 重新定义为: class 类名 { private: ……… protected: ……… public: ……… }; 5.1.3 基类的访问描述符 为说明派生关系,派生类的说明为 class edit_string: public string {…}; access为private ,称为私有派生,基类的所有公有段成员和保护段成员都成为派生类私有段的成员。 1. 公有派生 在公有派生情况下,基类保护成员和公有成员的访问全限在派生类中保持不变。即: 1) 基类的保护成员在派生类中仍然是保护成员。 2) 基类的公有成员在派生类中仍然是公有成员。 3) 基类的私有成员在派生类中成为派生类的不可访问成员。 一个类的不可访问成员是指该类包含有这些成员,但在类内和类外,都不能被直接访问。 因此,对于一个派生类A,类的成员有四种:私有成员,保护成员,公有成员和不可访问成员。如果该派生类还以公有方式继续派生出它的派生类B,那么 1) A类的保护成员在派生类B中仍然是保护成员。 2) A类的公有成员在派生类B中仍然是公有成员。 3) A类的私有成员和不可访问成员在派生类B中成为派生类的不可访问成员。 #include iostream.h class

文档评论(0)

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

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

1亿VIP精品文档

相关文档