C++ 重載輸入輸出運算符 (>>/<<):實現類與串流的無縫整合
為什麼要重載 << / >>? C++ 標準庫已為內建型別(int、double、string 等)重載串流運算符。但自定義類型若要支援
C++ 重載下標運算符 []:實現邊界檢查與安全陣列訪問
下標運算符重載的必要性 C++ 內建陣列下標訪問 arr[i] 不進行邊界檢查,越界訪問導致未定義行為,極難偵錯。重載 operator[] 可在類層面強制加入
C++ 重載自增/自減運算符 (++/--):前置與後置的正確實現差異
一元運算符重載的特殊性 ++ 和 -- 為一元運算符,各有前置 (++i) 與後置 (i++) 兩種形式,均可重載。關鍵在於區分兩者的語義差異: 前置形式:先
C++ 重載賦值運算符 (=):深拷貝與資源管理的正確姿勢
預設賦值行為的隱患 C++ 編譯器為類自動生成的預設賦值運算符執行成員逐一拷貝(member-wise copy)。對於無動態資源的類(如僅含基本型別成員),這
C++ 重載 new/delete 運算符:自定義記憶體管理策略
為什麼要重載記憶體管理運算符? C++ 內建的 new、new[]、delete、delete[] 對大多數場景已足夠。但在特定需求下——如實現記憶體池、追蹤記
C++ 函數模板詳解:從函數重載到泛型程式設計
為什麼需要函數模板? 在早期的 C++ 學習中,我們為了交換不同類型變數的值(如 int、float、char、bool),通常會使用函數重載定義多個同名但參數
C++ 類模板完整指南:語法、實例化、成員函式定義與實戰
類模板宣告語法 template // 或 class T1, class T2 class ClassName { // 成員可使用 T1, T2
C++ 模板編程透徹解析:從強類型困境到泛型編程昇華
語言類型系統兩大陣營 特性強類型 (C/C++, Java, C#)弱類型 (JS, Python, PHP) 變數宣告必須指定型別無需指定,自動推導 型別變
C++ 異常處理入門:try-catch 機制、拋出傳播與錯誤分類
程式錯誤三分類 語法錯誤:編譯期發現,最易修復 邏輯錯誤:功能不符預期,除錯解決 執行期錯誤:除零、記憶體耗盡、越界、檔案不存在 → 異常機制解決 異常處
C++ 異常類型與多重 catch 機制:匹配規則、類型轉換與最佳實踐
catch 參數解析 catch (ExceptionType variable) // variable 可省略,僅匹配類型 // 相當於函數參數:運行期匹配
C++ throw 關鍵字深度解析:拋出異常與棄用的異常規範
拋出異常:核心語法 throw expression; // expression 可為任意型別:int、指標、物件、字串... 異常物件在拋出點建立,透過呼叫
C++ 標準異常類別 exception 體系全景解析
捕獲所有標準異常的統一入口 try { // 可能拋出標準異常 } catch (exception& e) { // 以引用捕獲,避免物件切割與拷貝開
C++ 輸入輸出核心觀念:三大模式、型別安全與擴展性
三大 I/O 模式 標準 I/O:鍵盤 ↔ 螢幕 (cin/cout) 檔案 I/O:磁碟檔案 ↔ 記憶體 (ifstream/ofstream/fstrea
C++ I/O 類別庫全景圖:從類別繼承到運算符重載的核心架構
流的本質 流 = 有序位元組序列,對應記憶體緩衝區。輸入:裝置 → 緩衝區 → 程式;輸出:程式 → 緩衝區 → 裝置。 核心類別繼承體系 ios (抽象基類
C++ 標準輸出流 cout/cerr/clog 深度解析:三大輸出通道的分工與協作
cout:標準輸出流 關聯標準輸出裝置 (螢幕) 緩衝機制:資料先入 輸出緩衝區,滿或遇 endl 才刷新顯示 endl = 換行 + 強制刷新;\n = 僅
C++ cin 輸入流深度解析:狀態機制與錯誤處理
cin 本質 cin 是 istream_withassign 類別物件,關聯標準輸入 (鍵盤)。資料流向:鍵盤 → 鍵盤緩衝區 → (按 Enter) → 程