2021.04.23学习笔记

本文详细介绍了C++中的继承机制,包括公有、保护和私有继承的特点及应用。重点讨论了多态的概念,强调虚函数在实现多态中的关键作用,以及纯虚函数在创建抽象类中的角色。同时,提到了虚继承解决重复基类成员的问题,并探讨了如何处理命名冲突和使用域解析符。最后,讲解了动态类型识别的typeid()函数及其用途。
摘要由CSDN通过智能技术生成

继承

:public

公有继承
不改变属性

:protected

保护继承
所有变成保护

:private

私有继承
所有变成私有

注意

如果基类的类型是private,在子类中依旧不能使用,private中的成员只能在本类中使用
如果是protect或public,在子类中可以被使用
private继承的子类依旧不能调用
private继承:可以被继承,占用子类空间,但不可被使用

如果派生类中的成员与基类中的成员同名,只会使用自己的(继承的名字遮蔽原则)
如果想用父类的,可以加域解析符::
在这里插入图片描述

派生类的构造函数中允许调用基类的构造函数,但仅限于初始化表

继承的构造函数的调用顺序只和继承的顺序有关

命名冲突
解决方法:
1、加上域解析符
2、虚继承
虚继承
使派生类中只留一份间接基类的成员
使用方法:在直接引用前加virtual关键字
在这里插入图片描述
向上转型:只能将派生类赋值给基类

多态

一个接口,多种办法(代码的复用性)(一行相同的代码,实现不同的功能)
重写:子类的同名函数,遮蔽父类的同名函数

虚函数

在需要修饰的函数前加virtual
派生类中所有的同名函数自动变为虚函数

构成多态的条件

1、必须存在继承关系
2、继承关系中必须要有同名的虚函数
3、存在基类的指针,通过该指针,调用虚函数

纯虚函数

virtual 函数 =0
1、没有函数体
2、纯粹的函数声明
3、包含纯虚函数的类称为抽象类:无法实例化的类
4、一般作为基类存在,所以又称为模板类

一个类想要实例化,就要将所有继承来的纯虚函数全部重写

tyoeid()
typeid(date Type)
typeid(expression)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值