學習 C++ 可視為學習一門獨立語言,不依賴 C 語言,可直接學習 C++,但需具備良好程式碼基礎與英語功底。C++ 設計原則在「完整型別安全」、「完全通用性」、「完善抽象之美」三方面要求與現實約束間尋求平衡。
C++ 從 Simula 借鑒使用者自訂型別與類別層次機制。但 Simula 中使用者自訂型別與內建型別支援存在根本差異:自訂型別對象只能在動態儲存區分配,內建型別只在堆疊分配。這種差異暗示對效率的嚴格考慮。C++ 致力解決:統一對待內建與自訂型別,消除執行期時空負擔,支援泛型程式設計中統一處理語義相近型別。
維護大型程式時,程式員常基於不完整知識修改局部代碼。C++ 提供 class、namespace、存取控制,使設計決策的局部化成為可能。在單遍編譯語言中,某些順序依賴不可避免,但 C++ 類別成員命名規則與多載解析規則獨立於宣告順序,降低混亂與錯誤可能性。
C++ 盡量與 C 的「source-link」方式相容,將 C 作為子集包含。相容性使 C++ 程式員立刻擁有完整語言與工具集,利用海量 C 教學素材與現成程式庫。但也保留了 C 的語法瑕疵(宣告語法不優美、內建型別隱性轉換規則混亂)。許多從 C 轉向 C++ 的程式員未認識到:代碼品質顯著提升只能通過程式設計風格顯著改變達到。