類可包含 public、private、protected 三種訪問級別的成員(數據、函數、類型別名)。
public:對所有代碼可見。
private:僅類內部成員、友元可見。
protected:類內部、友元、派生類可見。
Sales_item() : units_sold(0), revenue(0.0) {},在函數體執行前完成成員初始化,對 const、引用、無默認構造的類類型成員強制要求使用。const 語義inline;類外定義需 ClassName:: 作用域限定。const 成員函數:double avg_price() const;,承諾不修改非 mutable 成員,this 類型為 const ClassName* const。const 可作為重載依據:char& operator[](size_t) vs const char& operator[](size_t) const。const。mutable 與 static 成員mutable 成員即使在 const 對象/函數中也可修改(如緩存、鎖計數器)。static 數據成員:屬於類而非對象,需在類外定義並初始化(int ClassName::staticMember = 0;)。整型 const static 可在類內初始化(仍需類外定義但無需再賦值)。static 成員函數:無 this 指針,只能訪問 static 成員,不可 const、不可 virtual。friend 可修飾普通函數、其他類成員函數、整個類。只能出現在類定義內部,不受訪問控制影響。friend void Window_Mgr::clear();)。explicititem.same_isbn("9-999") 會隱構造 Sales_item 臨時對象。explicit 禁止隱式轉換,僅允許顯式構造:item.same_isbn(Sales_item("9-999"))。explicit。public 且無構造函數時,可用花括號列表初始化:Data val = {1024, "Anna"};(順序同聲明順序)。class Foo; 僅引入類型名,不可用於定義對象、訪問成員、作為基類等需完整定義的場景。C++ 類機制細節繁多,核心原則是:初始化列表優先於賦值、const 語義貫穿始終、static 成員屬於類而非對象、友元打破封裝需謹慎使用、explicit 防止驚喜轉換。掌握這些規則能寫出高效、安全、可維護的 C++ 代碼。