zoukankan      html  css  js  c++  java
  • 3.继承与派生

    1.类的继承与派生

      - 类的继承:从已有类产生新类的过程。原有类称为基类或父类,产生的新类称为派生类或子类。

      - 派生类语法:  

        class 派生类名:继承方式   基类名1,继承方式  基类名2,...

        {

        }

      - 单继承和多继承:基类个数决定

      - 直接基类,间接基类

      - 继承方式规定了如何访问从基类继承的成员

      - 派生类成员是指除了从基类继承的所有成员之外,新增加的数据和函数成员

      - 派生类生成过程:吸收基类成员->改造基类成员->添加新的成员,构造函数和析构函数都不被继承

    2.访问控制

      - public:继承后,基类数据为public

      - protected:继承后,基类数据为protected

      - private:继承后,基类数据为private

    3.类型兼容性规则:指在需要基类的任何地方,都可以使用公有派生类的对象来代替(公有继承)

      - 代替包含以下情况

        * 派生类的对象可以隐含转换为基类对象

        * 派生类对象可以初始化基类的引用

        * 派生类的指针可以隐含转换为基类指针

      - 在代替之后,派生类对象就可以作为基类的对象使用,但只能使用从基类继承的成员

    4.派生类的构造和析构函数

      - 构造函数:

        派生类构造函数执行的一般次序

        * 调用基类构造函数,调用顺序按照他们被继承时声明的顺序

        * 对派生类新增的成员对象初始化,调用顺序按照他们在类中声明的顺序

        * 执行派生类的构造函数体中的内容

      - 复制构造函数:默认会调用基类的复制构造函数,然后对派生类新增的成员对象一一执行复制

      - 析构函数:声明方法与没有继承关系的类中析构函数的声明方法完全相同,只要在函数体中负责把派生类新增的非对象成员进行清理。执行次序与构造函数正好相反。

    5.派生类成员的标识与访问

      - 派生类中成员按照访问属性划分为4种:不可访问的成员,私有成员,保护成员,共有成员

      - 作用域分辨符::

      - 如果派生类中声明了与基类成员函数同名的新函数,即使函数的参数表不同,从基类继承的同名函数的所有重载形式也都会被隐藏

      - 通过作用域分辨符可以唯一标识派生类中由基类所继承的成员,解决成员被隐藏的问题

      - 虚基类:virtual关键字修饰继承,语法:class  派生类名:virtual  继承方式  基类名;此时内存中只会有一个虚基类的成员。

      - 构造一个类的对象的一般顺序是:

        * 如果该类有直接或间接虚基类,则先执行虚基类的构造函数

        * 如果该类有其他基类,按照其继承声明列表中出现的次序,分别执行他们的构造函数,但构造过程中,不再执行他们的虚基类的构造函数

        * 按照在类定义中出现的顺序,对派生类中新增的成员对象进行初始化

        * 执行构造函数的函数体

  • 相关阅读:
    ps_cc:制作sprite拼贴图片
    pc端的企业网站(IT修真院test9)详解一个响应式完成的pc端项目
    pc端的企业网站(IT修真院test8)详解1-4
    pc端的企业网站(IT修真院test8)详解1-3
    pc端的企业网站(IT修真院test8)详解1-2
    pc端的企业网站(IT修真院test8)详解1-1
    ps_cc切片
    Sublime Text通过插件编译Sass为CSS及中文编译异常解决
    PostCSS一种更优雅、更简单的书写CSS方式
    Gulp自动添加版本号
  • 原文地址:https://www.cnblogs.com/Mr-ox/p/6475928.html
Copyright © 2011-2022 走看看