第七讲 继承性.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文档。上传文档
查看更多
7.1 继承的好处 当原来使用的数据结构不适应新系统的需求,或原来提供的功能需要扩充,或原来的性能不能满足现在的要求时,派生类的成员函数可以调用基类的成员函数,并在此基础上增加必要的程序代码; 当需要完全改变原有操作的实现算法时,可以在派生类中实现一个与基类成员函数同名而算法不同的成员函数; 当需要增加新功能时,可以在派生类中定义一个新的成员函数。 继承性还使得用户在开发新的应用系统时不必完全从零开始,可以继承原有的相似系统的功能或者从类库中选取适用的类,再派生出新的类以实现所需要的功能。 下面让我们通过一个具体例子来感受一下使用继承机制的必要: class String { private: char *contents; //说明了一个字符串首地址的指针 int length; //字符串长度 public: String() { length = 0; } 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 ++语言提供的继承机制,从String类派生出新的派生类EditString,增加了移动光标,在光标处编辑的处理功能: class EditString : public String //派生类EditString的定义 { private: int cursor; public: EditString(int offset = 0){ cursor = offset; } int get_cursor(){ return cursor; } void move_cursor(int offset); // 把光标移到指定位置 void add(String *text); // 在光标后添加一个字符串 void replace(String *text); // 把光标后内容换成新字符串 void del(int how_much); // 删除光标后指定个数的字符 }; 下面是使用String类和EditString类的一个主函数: void main() { String s1; //声明基类String的对象s1 EditString s2; //声明派生类EditString的对象s2 char *p; s1.set_contents(11,″Hello, world″); p = s1.get_contents(); s2.set_contents(11, p); s2.move_cursor(6); s2.replace(“Students”); } 为了软件复用,必须具有: 抽象机制 将一组相似模块中的共性内容抽象出来,作为基类的内容向外部世界共享。 继承机制 无需修改原有程序模块的代码就可以重用原有的程序资源并对其功能进行扩充。 7.2 C++定义派生类的语法 7.2.1 定义派生类的语法 7.2.2 访问权修饰符 三条规律: ⑴派生类成员函数不能直接访问基类的私有成员。 派生类继承了基类的私有成员,在创建派生类对象时,先为基类中说明的数据成员(包括私有数据成员)分配内存,然后才为派生类中说明的数据成员分配内存,所有上述成员都属于这个新创建的对象。 如果在子类中需要使用从父类继承来的父类私有成员,必须通过父类公有(或保护)的成员函数访问。 ⑵ 访问权修饰符只能使继承来的成员的可访问性受到更严格限制,而不能放松这种限制。 ⑶ 在继承机制下信息隐藏的最好方法,是在基类中使用访问权符protected。 在基类中使用访问权符protected声明的成员,可由派生类的成员函数直接访问,在派生类之外,任何函数是不能直接访问的。通常把被派生类继承后需较频繁使用的基类数据成员的访问属性规定为protected。 使用访问权修饰符时的注意事项: 要区分访问权修饰符与访问权符的概念,在定义派生类时,派生类通过访问权修饰符从基类获得一定权限,进行公有派生、保护派生或私有派生,例

文档评论(0)

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

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

1亿VIP精品文档

相关文档