記得幾年前還在廣州的時候有讀過這本書,但比較粗略,並沒有融會貫通,可能是之前c++基礎較為薄弱。搬家後這本書沒有落掉,因此近段時間晚上1小時的讀書時間看起了這個。
第一章主要講c++ 物件模型,主要分析c++物件模型的結構,當中還跟c語言做了一些對比,例如分析了為什麼c++要引入class,原因其實比較簡單,就是struct不適合c++ oo的思想,並且擴充套件到模板使用中顯得過於突兀。重頭戲是討論了c++其實並沒有傳說中比c++效率低很多,並且c++雖然加了虛函式的機制增加了空間的成本,但是卻贏來了更好的擴充套件性。主要看使用者如何拿捏了
第二章是講解建構函式的,先重點介紹了什麼情況下編譯器會生成預設建構函式,情況有4。1是包含有建構函式的類成員,2是父類有預設建構函式三是虛基類有預設建構函式 四是存在虛函式 初始化虛表用的。接著講解拷貝建構函式,跟預設建構函式同理,不是平白無故編譯器就會自動生成的,也是需要在特定的情況下編譯器才會生成!
第三章 資料語意學,乙個空的類在普通的c++編譯器一般占用乙個char 的空間,這麼做的原因是用於標識類。類空間大小還跟 語言本身支援的語法以及邊界對應相關。例如乙個 5位元組的類可能 會被擴充套件為8位元組,在32位機器上可以提高更高效率的訪問。類資料成員的儲存順序c++標準並沒用硬性的規定,多數的編譯器按照成員變數宣告的順序儲存,靜態成員變數統一放在全域性儲存區。非靜態成員的儲存,一般按照宣告的順序儲存,與編譯器相關。繼承體系中,類的大小會跟是否包含虛函式以及邊界對齊相關。
Windows下dump檔案生成與分析
一 生成dump檔案方式 1.1任務管理器 在程式崩潰後,先不關閉程式,在任務管理器中找到該程式對應的程序。右鍵 建立轉儲檔案。此時會在預設的目錄下建立出乙個dump檔案。可以看出,此種方法只適用於程式崩潰但沒有立即自行退出的情況。倘若程式故障後自行退出,則此方法就難以應用。不過,我們可以在登錄檔中...
抓取dump的標頭檔案
檔名 dumpmodule.h 使用說明 此檔案是乙個抓取程式出現異常時dump的標頭檔案,使用時只需要包含就可以了,如果程式出現異常就會生成乙個dump檔案,在可執行檔案的相同目錄。if defined dumpmodule h fbffba7d 971e 48e0 a589 6fd14e8965...
獲取JVM的dump檔案
獲取jvm的dump檔案的兩種方式 1.jvm啟動時增加兩個引數 出現 oome 時生成堆 dump xx heapdumponoutofmemoryerror xx heapdumppath home liuke jvmlogs 2.發現程式異常前通過執行指令,直接生成當前jvm的dmp檔案,62...