C/Pascal 等傳統語言:原始碼即執行邏輯,編譯器僅加 prologue/epilogue 管理堆疊。
C++:編譯器為你注入大量**與程式邏輯強相關**的隱式碼:
ctor) / 解構函數 (dtor) 自動喚起。vptr) 設置、虛函數表 (vtbl) 布局。new 單一物件產生 cookie、陣列 new[] 記錄大小與建構函數指標。若不理解這些底層機制,只能死記規則 (如「基類解構函數必須 virtual」、「勿多態對待陣列」) 而不知其然 — 林語堂所謂「不高明」。
使用 MFC/OWL/VCL 等應用框架時,你的程式碼不再是主角,而是框架的「插件」:
std::sort 作用於任何滿足 RandomAccessIterator 的型別。若仍用 C 風格「主函數呼叫子函數」思維寫 C++,就是「拿著 C++ 寫 C」,入寶山空手回。
語法入門
↓
多型實戰 (虛函數、介面、框架使用) —— 高階震盪
↓
物件模型深探 (vptr/vtbl、繼承佈局、建構/解構序列) —— 低階震盪
↓
泛型程式設計 (STL、模板元編程、Concepts) —— 更高階
↓
系統架構設計 (模式、重構、領域建模) —— 最高階
只停留在中階 (語法熟練) 是死水。必須在「抽象設計」與「機制實現」間來回穿梭,才能內化為直覺。