C++考试篇二:继承与派生

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

第二章:继承与派生

1.基本概念

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

2.类的继承方式

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

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

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

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

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

4.多重继承

  • 派生类构造函数的执行顺序是先执行所有基类的构造函数,再执行派生类本身的构造函数。
  • 同一层次的各基类构造函数的执行顺序取决于声明派生类是所指定的基类顺序。
  • 调用不同基类中相同成员和派生类中访问公共基类成员时会产生二义性,可以通过域作用域符和虚基类解决。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值