C++学习笔记20190704_继承

01关系运算符重载

1.自定义数据类型 不会内部做比较 == !=
2.所以要重载 == !=
函数的调用运算符重载
1.()仿函数 对象()看似像函数调用
2.Myadd() 匿名对象
不要重载 && 和 ||
1.本身有短路特性我们无法去实现这种特性 所以不要重载

02继承

网页 很多公共部分 导致实现时候有很多重复的代码
引出继承,基类(父类) 公共网页 具体子类实现不同的内容
继承的访问权限图
1.继承方式 不管公有继承 保护 还是私有 基类中的私有属性, 都不可以继承下去。
公有继承
1 父类中的protected在子类中时候protected,父类中的public在子类中是protected
保护继承
1 父类中的protected在子类中是protected,父类中的public在子类中的public在子类中是protected
私有继承
1 父类中的protected在子类中是private,父类中的public在子类中的private

03继承中的对象模型

子类会继承父类中所有内容,包括了私有属性,只是我们访问不到,编译器给隐藏了

04继承中的构造和析构顺序

1子类创建对象时,先调用父类的构造,然后调用自身构造
2.析构顺序与构造顺序相反
3子类是不会继承父类的构造函数和析构函数
4如果父类中没有合适的默认构造, 那么子类可以利用初始化列表的方式显示调用父类的其他构造

05继承中的同名处理

1成员属性 直接调用先调用子类,如果想调用父类 需要作用域
2 成员函数 直接调用先调用子类,父类的所有版本都会被隐藏,除非显示用作用域运算符去调用

06继承中静态成员的处理

1 类似非静态成员函数处理
2如果想访问父类中的成员,加作用域

07多继承

多继承语法格式
1 多继承语法 class A : public B1, public B2,…
2 引发二异性
3 想解决二异性问题,就需要通过作用域区分

08菱形继承和虚继承

1解决问题利用虚基类
2sheepTuo内部结构
3vbptr虚基类指针
指向一张虚基类指针通过表找到偏移量,找到公有的数据

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值