zoukankan      html  css  js  c++  java
  • C++考试篇二:继承与派生

    虽然已经考完了,但既然开了篇,就要写完。

    第二章:继承与派生

    1.基本概念

    • 继承,指建立一个新的类,新类从一个或多个已定义的几类中继承属性(数据成员)和行为(函数成员),并可以重新定义或添加新的属性和行为,从而建立类的层次结构。继承是实现软件重用的一种方法。
    • 继承可以分为单一继承和多重继承。单一继承是一个派生类只从一个基类派生,多重继承是一个派生类从多个基类派生。
    • 继承方式有private,protected和public三种,不同的继承方式下,派生类继承的父类成员的访问权限不同。默认继承方式是private。
    • 派生类中重写的函数会屏蔽基类中的同名函数。
      class A {
      //类内容
      };
      class B{
      //类内容
      }
      class C:public A, private B {
      //继承A、B中的数据成员和函数并加上自己的内容
      }
      

    2.类的继承方式

    • 公有继承(public)
    关于基类中成员的访问权限
    基类 派生类 外部
    public public不变 可访问
    protected protected不变 不可访问
    private 不可访问 不可访问
    • 私有继承(private)

    关于基类中成员的访问权限
    基类 派生类 外部
    public private 不可访问
    protected private 不可访问
    private 不可访问 不可访问

    • 保护继承(protected)
    关于基类中成员的访问权限
    基类 派生类 外部
    public protected 不可访问
    protected protected 不可访问
    private 不可访问 不可访问

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

    • 派生类的构造函数初始化派生类新增的数据。继承的成员自动调用基类的构造喊函数。
    • 系统会为派生类定义一个默认构造函数(无参数、无显式初始化表、无数据成员初始化代码),用于完成派生类对象创建时的内存分配操作。
    • 派生类需要初始化的数据有继承的成员、新增类对象的成员和新增普通成员。
    • 派生类构造函数的调用顺序为:基类构造函数、子对象的构造函数、派生类的构造函数。
    • B是A的public派生类,C是B的public派生类,如果希望B可可以直接访问A的private成员,而C不能访问A的private成员,可以将B声明为A的友元类。(也可以将基类的私有成员定义为protected,然后用private继承)

    4.多重继承

    • 派生类构造函数的执行顺序是先执行所有基类的构造函数,再执行派生类本身的构造函数。
    • 同一层次的各基类构造函数的执行顺序取决于声明派生类是所指定的基类顺序。
    • 调用不同基类中相同成员和派生类中访问公共基类成员时会产生二义性,可以通过域作用域符和虚基类解决。
  • 相关阅读:
    Quartz中时间表达式的设置-----corn表达式
    怎样使用SetTimer MFC 够具体
    MySQL server version for the right syntax to use near 'type=InnoDB' at line 1
    Oracle 11g client的安装和配置。
    VC++ CopyFile函数使用方法
    怎样将程序猿写出来的程序打包成安装包(最简单的)
    一分钟制作U盘版BT3
    xml文件格式例如以下
    关于概率性事件的产品性能和客户体验讨论
    RapeLay(电车之狼R)的结局介绍 (隐藏结局攻略)
  • 原文地址:https://www.cnblogs.com/java20130726/p/3218697.html
Copyright © 2011-2022 走看看