深度探索 C++ 物件模型(三):多重繼承、結構vs類別、面向物件模型實戰範例
導讀:多態的代價 多態是強大設計機制,允許繼承抽象 public 介面後封裝相關型別,代價是額外間接性——記憶體獲取與型別決策上。C++ 透過 class po
深度探索 C++ 物件模型(二):簡單物件模型、表格驅動模型與 C++ 模型演進
讀者建議:跳著讀、再回頭 讀者史列因建議:第一章是總覽,全看懂後面就沒必要看了。內容後面都有詳細介紹,開始只要有大概印象即可。書中許多內容前後重複。建議先不管看
深度探索 C++ 物件模型(一):從 C 到 C++ 的思維轉換與物件記憶體佈局
第一章:關於物件 閱讀本章讓我想起一個笑話:寫 Hello World 程式,隨著水平職務不同,程式碼隨之變化。初看當笑話,細品作者水平不凡。要讓程式碼最大程度
C++ 語言基礎:goto、break、continue、switch 進階流程控制
goto 陳述句 跳轉至標號處: bool done = false; startPoint: // do some stuff if (!done) got
C++ 語言基礎:if 陳述句與迴圈(for/while/do-while)完整教學
if 陳述句 測試條件,條件為真時執行一或多陳述句。 ⚠ 陷阱:if 後不可加分號 if (x == 10); // 警告!多餘分號! DoSomethin
C++ 語言基礎:標準字串操作函式與 sprintf 格式化完全指南
標準字串操作函式 C++ 無內建字串型別,標準 C 庫提供字串處理函式。表 1.3 列出常用函式: 函式說明 strcat()將字串連接到目標字串末尾 st
C++ 語言基礎:函式規則、main 函式與陣列完全指南
函式規則總覽 函式可接受任意多參數或無參數。 函式可回傳一個值,但不強制回傳。 回傳 void 的函式不可回傳數值(編譯錯誤)。無 return 也合法,執行
C++ 語言基礎:資料型別完整對照表與型別轉換陷阱
C++ 資料型別 BASIC 等語言可任意指派數值型別給變數,翻譯器自動分配空間。C++ **必須先宣告型別再使用**,編譯器進行型別檢查確保執行順利。型別使用
C++ 語言基礎入門:從變數、型別到基本輸入輸出
C++ 基礎入門簡介 C++ 功能強大,能做其他語言做不到的事,但強大有代價:初學者常遇記憶體溢出、存取違規導致當機。本章以最精簡篇幅介紹 C++ 基礎。C++
C++ 進階編程經驗(二):效率優化原則與 14 條實戰防錯清單
11.1.3 const 成員函式 任何**不修改資料成員**的函式都應宣告為 const 型別。撰寫 const 成員函式時若誤修改資料成員或呼叫非 cons
C++ 進階編程經驗(一):const 全方位提升函式健壯性
11.1 善用 const 提升函式健壯性 看到 const,C++ 程式設計師常只想到常數。若僅用於定義常數,如同「只用火藥造鞭炮」。const 更大的魅力在
C/C++ 記憶體管理實戰(一):三種配置方式、常見錯誤與對策、指標與陣列本質差異
第 7 章 記憶體管理:歡迎進入雷區 「640K ought to be enough for everybody」—— Bill Gates, 1981
C/C++ 函式設計精要(三):函式內部實作鐵律、斷言藝術與臨時物件優化
6.3 函式內部實作規則 不同功能函式內部實作各異,但可在函式體「入口」與「出口」嚴把關,提升品質。 規則 6-3-1:入口處檢查參數有效性 許多錯誤源於非法
C/C++ 函式設計精要(二):getchar 陷阱、回傳值設計藝術與鏈式運算支援
getchar 的型別陷阱深度剖析 getchar 宣告為 int getchar(void) 而非 char,原因在於需區分正常字元與 EOF(通常為 -1)
C/C++ 記憶體管理實戰(五):記憶體耗盡處理策略與 32 位元系統虛擬記憶體迷思
7.9 記憶體耗盡怎麼辦? 動態配置失敗時,malloc 與 new 回傳 NULL。三種常見處理方式: 方式一:檢查 NULL 並 return 結束函式
C/C++ 記憶體管理實戰(四):free/delete 後的指標狀態、野指標根除、new/delete vs malloc/free
7.5 free/delete 後指標怎麼了? free(p) 或 delete p 僅釋放記憶體,**不會自動將指標設為 NULL**。指標仍保有原位址值,變