c++学习之四

  1. 关系运算符重载
    1.1自定义数据类型 不会内部做 比较 == !=
    1.2所以要重载 == !=

  2. 函数调用运算符重载
    2.1() 仿函数 对象() 看似像函数调用
    2.2MyAdd() 匿名对象

  3. 不要重载 && 和 ||
    3.1本身有短路特性我们无法去实现这种特性
    3.2所以不要重载

符号重载总结:
1.[]、=、()和->操作符只能通过成员函数进行重载
2.<<和>>只能通过全局函数配合友元函数进行重载
3.不要重载&&和|| 操作符,因为无法实现短路规则

  1. 强化训练 –字符串封装
    4.1cout 输入 自定义的字符串
    4.2cin 让用户输入字符串内容
    4.3重载 = 运算符
    4.4重载 + 运算符
    4.5重载 [] 运算符
    4.6重载 == 运算符

  2. 继承的引出
    5.1网页 很多公共部分
    5.2导致实现时候有很多重复的代码
    5.3引出继承,基类 (父类) 公共网页
    5.4具体子类 实现不同的内容
    5.5语法 class 子类 :继承方式 父类

  3. 继承方式
    6.1不管公有继承 保护 还是私有 基类中的私有属性 ,都不可以继承下去
    6.2公有继承
    6.2.1父类中的protected 在子类中是 protected
    6.2.2父类中的public 在子类中是 public
    6.3保护继承
    6.3.1父类中的protected 在子类中是 protected
    6.3.2父类中的public 在子类中是 protected
    6.4私有继承
    6.4.1父类中的protected 在子类中是 private
    6.4.2父类中的public 在子类中是 private

  4. 继承中的对象模型
    7.1子类会继承父类中所有的内容 ,包括了私有属性
    7.2只是我们访问不到,编译器给隐藏了
    7.3cl /d1 reportSingleClassLayout类名 文件名

8、继承中的构造和析构顺序
8.1子类创建对象时,先调用父类的构造,然后调用自身构造
8.2析构顺序与构造顺序相反
8.3子类是不会继承父类的构造函数和析构函数
8.4补充内容,如果父类中没有合适默认构造,那么子类可以利用初始化列表的方式显示的调用父类的其他构造

9、继承中的同名处理
9.1成员属性 直接调用先调用子类,如果想调用父类 需要作用域
9.2成员函数 直接调用先调用子类,父类的所有版本都会被隐藏,除非显示用作用域运算符去调用

10、继承中静态成员的处理
10.1类似非静态成员函数处理
10.2如果想访问父类中的成员,加作用域即可

11、多继承的概念以及问题
11.1class A : public B1, public B2,….
11.2引发二义性问题
11.3想解决二义性问题,就需要通过作用域来进行区分

12、菱形继承问题以及解决
12.1解决问题利用虚基类
12.2sheepTuo内部结构
12.2.1vbptr 虚基类指针
12.2.2指向一张 虚基类表
12.2.3通过表找到偏移量
12.2.4找到共有的数据,共享共有数据。
12.3内部工作原理 (可以不掌握)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

li_ao527

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值