【笔记】C++程序设计第四版谭浩强第11章类的继承

本文详细介绍了C++中的类继承概念,包括单继承和多重继承,派生类的声明和成员访问属性(public,private,protected)。同时,讨论了派生类的构造函数和析构函数的使用,以及如何处理有子对象的情况。文章还涉及了多重继承下的构造函数调用和二义性问题,以及虚基类的作用,最后提到了基类与派生类之间的转换规则。
摘要由CSDN通过智能技术生成

个人的读书笔记,记录一下~
C

类的继承

1概念:继承/派生
  • 单继承/多重继承
2派生类的声明

class 派生类名:[继承方式] 基类名{ 派生类新添加的成员};

3派生类成员的访问属性
3.1public

积累的成员保持原有访问属性:public和protected不变,private(仍然是只有基类可访问、派生类不能访问)

3.2private

private(仍然是只有基类可访问、派生类不能访问),public和protected变为私有(即只在基类和派生类内可以访问,类外不可直接访问)

3.3protected

private(仍然是只有基类可访问、派生类不能访问),public和protected变为protected(即只在基类和派生类内可以访问,类外不可直接访问)

protected指只能类内访问,或被派生类访问,但不能被类外访问

4派生类的构造函数和析构函数
4.1一般情况
  • 派生类构造函数名(总参数表):基类构造函数名(参数名){

    派生类中新增数据成员和初始化语句}

  • 派生类构造函数调用基类构造函数 ,故基类构造函数名中的参数名是实参

4.2有子对象的派生类的构造函数
  • 派生类构造函数名(总参数表):基类构造函数名(参数名),子对象名(参数表){

    派生类中新增数据成员和初始化语句}

  • 执行派生类构造函数的顺序:1)调用基类构造函数;2)调用子对象构造函数;3)调用派生类构造函数;

4.3析构函数

调用顺序:1)派生类析构函数;2)子对象析构函数;3)基类的析构函数

5多重继承
5.1构造函数
  1. 派生类构造函数名(总参数表):基类1构造函数名(参数名),基类1构造函数名(参数表),...{派生类中新增数据成员和初始化语句}
  2. 避免同名导致的:二义性如果有同名成员,需要指明域:类名::数据成员名,不写明域就表示当前对象。
5.2虚基类
  1. 作用:在继承间接共同基类时只保留一份成员

  2. 声明某基类为虚基类:继承的时候,在派生类里声明:(在爸爸辈派生类)

    class A{};

    class B:virtual public A{};

  3. 在给孙子辈的派生类初始化时,不仅要对直接基类进行初始化,还要对虚基类初始化,编译的时候只执行续集类的构造函数,而忽略爸爸辈的派生类对虚基类的构造函数

6基类与派生类的转换
  1. 允许派生类对象向基类对象赋值。同一基类不同派生类之间,基类对派生类,这些赋值是不被允许的。
  2. 允许派生类对象对基类对象的引用赋值或初始化。此时,基类对象的引用只是派生类中基类部分的别名,并与基类部分共享同一段存储单元、相同起始地址。
  3. 允许派生类对象做函数参数为基类对象的实参。
  4. 允许派生类对象的地址赋给基类对象的指针变量。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值