第五周 笔记

1、关于vptr和vtbl

       只有有虚函数的class才有;

        vptr占用class对象一个指针的位置

        vptr是一个指针,指向vtbl

        多态,由p指针指向需要执行的虚函数,从而实现动态绑定【p类型是父类的指针,但却指向的是子类在内存的位置】

第五周 笔记_第1张图片

2、有四种new  delete

1、new   常用的初始化一个对象

2、operator new   构造一个对象分配内存时用

3、array new   构造一个数组用

4、::operator new  全局

ps:第三条new数组时默认会多四个字节的大小,用于存储数组的大小,这样在释放内存时就有依据

3、构造crash时防止内存泄漏的处理办法

第五周 笔记_第2张图片

用法:

第五周 笔记_第3张图片

还有两种处理构造时防止内存泄漏的方法

1、使用智能指针

2、构造函数里的初始化操作,放在init等函数里执行,当有内存泄漏时及时捕获处理。

你可能感兴趣的:(第五周 笔记)