1、关于vptr和vtbl
只有有虚函数的class才有;
vptr占用class对象一个指针的位置
vptr是一个指针,指向vtbl
多态,由p指针指向需要执行的虚函数,从而实现动态绑定【p类型是父类的指针,但却指向的是子类在内存的位置】
2、有四种new delete
1、new 常用的初始化一个对象
2、operator new 构造一个对象分配内存时用
3、array new 构造一个数组用
4、::operator new 全局
ps:第三条new数组时默认会多四个字节的大小,用于存储数组的大小,这样在释放内存时就有依据
3、构造crash时防止内存泄漏的处理办法
用法:
还有两种处理构造时防止内存泄漏的方法
1、使用智能指针
2、构造函数里的初始化操作,放在init等函数里执行,当有内存泄漏时及时捕获处理。