1. 程式人生 > >建構函式,C++記憶體管理,記憶體洩漏定位

建構函式,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等函式