构造函数,C++内存管理,内存泄漏定位

时间:2021-07-31 06:50:05

构造函数

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等函数