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