zoukankan      html  css  js  c++  java
  • C++ 的继承与虚函数 读书笔记

    一、类与类之间关系:
     1、类与类之间可能会存在共性。
     2、类与类之间必定会有差异。
     3、为也节约开发时间和代码量,我们在设计类时可以把类的共享抽象出来形成一个基础类(基类)。
     4、使用基类+差异生成一个新的类的叫派生类
    二、继承的语法
     1、在设计一个类时如果已有的类中有它需要的成员,它可以从已有的类中继承哪些成员,被继承的类叫父类或基类,继承类叫作派生类或子类。
     class 类名 : 继承方式 基类1,继承方式 基类2,...
     {
     }
     2、子类会完全继承父类中的所有成员(包括哪些能访问的和不能访问的)。
     
     3、在设计类时如何形成继承的关系?
      类的设计:
       a、根据问题找对象
       b、把对象中我们需要的属性和行为抽象出来
       c、把抽象出的结果记录在一个class中形成一个类
       d、把class类实例化构造对象
       e、对象调用成员函数解决问题
      继承就是在对对象抽象的结果进行归纳总结,找出它们的共享形成基类,再把基类+差异派生出子类。
     4、继承的优点:代码复用。
      子类在继承父类后可以节约大量的代码、节省开发时间、缩短开发周。
     5、继承的缺点:
      a、继承会提高类与类之间的耦合度
      b、会降低代码的安全性和可维护性
    三、使用继承要注意的问题
     1、继承虽然可以获取父类中的所有成员,但子类中可以隐藏父类中的同名成员。
     2、父子类中的函数不可以形成重载,只有在同一个作用域下的同名不同参、const属性的函数才能开成重载。
     3、父类中的成员在子类的访问属性。
      父类中的 public 在子类中 可以访问
      父类中的 protected 在子类中 可以访问
      父类中的 private 在子类中 不可以访问
     4、继承的方式
      不同的继承方式会影响父类成员变量成子类成员后它们的访问属性,也就是继承来的成员在类外的访问属性。
      public 不变
      protected 公有变保护,其它不变
      private 全部变成私有的
    五、虚函数
     1、子类中会隐藏父类中的同名函数,这种关系叫作隐藏。
     2、在同一作用域下的同名函数,这种关系叫作重载。
     3、如果父类中的函数添加 virtual 关键字,这种函数就叫作虚函数,子类中会覆盖父类同名的虚函数。
     4、虚函数是实现多态的基础。
    六、继承的构造、析构、拷贝
     1、在继承时先调用父类的构造函数,再调用子类的构造函数
     2、在继承中先调用子类的析构,再调用父类的析构。
     3、在调用拷贝构造时会先调用父类的拷贝构造,再调用子类的拷贝构造。
     4、在C++中继承可以有多个父类,在构行时会按继承的顺序调用父类的构造函数。
     5、在析构时子类会先调用自己的析构函数,然后按照继承表的逆序调用析构函数。
  • 相关阅读:
    5. Longest Palindromic Substring
    24. Swap Nodes in Pairs
    23. Merge k Sorted Lists
    22. Generate Parentheses
    21. Merge Two Sorted Lists
    20. Valid Parentheses
    19. Remove Nth Node From End of List
    18. 4Sum
    17. Letter Combinations of a Phone Number
    14. Longest Common Prefix
  • 原文地址:https://www.cnblogs.com/mingyoujizao/p/9456348.html
Copyright © 2011-2022 走看看