C++面向对象程序设计II--侯捷版

转换函数

在这里插入图片描述
在这里插入图片描述

explicit关键字

主要用于构造函数处,不允许隐式类型转换
在这里插入图片描述
在这里插入图片描述
规定了不允许进行类型转换
在这里插入图片描述

模板

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模板特化

指定固定类型
在这里插入图片描述

偏特化

在这里插入图片描述
在这里插入图片描述

模板模板参数

在这里插入图片描述

C++11

数量不定的模板参数

在这里插入图片描述

auto

自动补齐变量类型
在这里插入图片描述

range for

在这里插入图片描述
在这里插入图片描述

虚函数与虚函数表

vptr 和 vtbl 【虚指针和虚函数表】

  1. 只要类中含有虚函数,在内存中就会多一个地址。这个地址存放的是虚表的位置,虚指针指向虚表的地址。
  2. 虚表中存放是虚函数的地址,顺序是按照本身定义的顺序存放的;
  3. 子类继承父类。会继承所有的虚函数以及虚表;
  4. 子类继承父类的虚函数,并且重写虚函数的时候,虚表中的虚函数的地址会改变;
    在这里插入图片描述
    在这里插入图片描述
    编译时候是静态绑定还是动态绑定?
    静态绑定:DLL

动态绑定要满足三个条件:
5. 要通过指针p;
6. 指针是向上转型,dynamic_cast; new猪->动物 Animal *p = new Pig;
7. 调用虚函数;
在这里插入图片描述
**动态绑定调用的函数不一定,要看指针p指向谁[A,B,C];**静态绑定是要一定要调用某一个地址,没法商量。

多态:类型一样,但是指向的东西不一样;
在这里插入图片描述

Dynamic Binding 动态绑定

在这里插入图片描述
在这里插入图片描述

重载new / delete

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值