构造函数,C++内存管理,内存泄漏定位
构造函数
1.构造顺序
虚基类构造函数,基类构造函数,类对象构造函数,自己的构造函数
2.必须使用初始化列表
(1) 引用成员,常量成员;
(2) 基类没默认构造函数(自己重载覆盖了),
(3)类对象成员没默认构造函数(自己重载覆盖了)
3.析构顺序
reverse( 虚基类构造函数,基类构造函数,类对象构造函数,自己的构造函数)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
内存管理
1.stack ---编译器自动管理,函数参数,局部变量,比较小
2.heap ---程序员自己管理,程序结束OS可能回收,存在内存碎片
3.static,全局----初始化的全局变量,未初始化的全局变量区
4.文字常量区 ---程序结束 释放
5.程序代码区 --- 存放函数的二进制代码
留待添加:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
内存泄漏定位
(1)在windows平台下通过CRT中的库函数进行检测;
(2)在可能泄漏的调用前后生成块的快照,比较前后的状态,定位泄漏的位置
(3)Linux下通过工具valgrind检测
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
手写strcpy,memcpy,strcat,strcmp等函数