C++靜態成員:類的共享變量與函數
這篇文章介紹了C++中靜態成員(變量和函數)的概念、用法及注意事項。 靜態成員用於解決普通成員變量無法共享數據的問題:靜態成員變量(`static`修飾)屬於整個類,存儲在全局數據區,所有對象共享,需在類外初始化(如`int Student::count = 0;`),可通過類名或對象訪問(如`Student::count`)。示例中`Student`類用靜態變量`studentCount`統計對象數量,構造時加1、析構時減1,展示共享特性。 靜態成員函數同樣用`static`修飾,屬於類而非對象,無`this`指針,只能訪問靜態成員,可通過類名或對象調用(如`Student::getCount()`)。 注意事項:靜態成員變量需類外初始化;靜態函數不能直接訪問非靜態成員;避免過度使用靜態成員以降低耦合。 總結:靜態成員實現類共享數據與工具函數,提升數據一致性,適用於全局狀態(如計數器),但需合理控制使用場景。
閱讀全文一文讀懂C++命名空間:避免命名衝突的小技巧
C++中不同文件或模塊定義同名元素會引發命名衝突,編譯器無法區分。命名空間通過“文件夾”式隔離解決此問題,用`namespace 名稱 { ... }`定義,將代碼分組,避免同名元素干擾。使用方式有二:直接用`命名空間::元素名`訪問具體元素;或`using namespace 命名空間`引入整個命名空間(頭文件慎用,源文件謹慎使用以避免全局污染)。進階技巧包括匿名命名空間(僅當前文件可見,保護私有細節)和嵌套命名空間(多層分組,C++17支持簡化寫法)。使用建議:按功能劃分命名空間、避免過度嵌套、頭文件禁用`using namespace`,優先用作用域解析符。合理使用命名空間是模塊化C++代碼的基礎。
閱讀全文原來這麼簡單:C++引用(&)的基礎用法
C++引用是變量的“別名”,與原變量共享內存,修改引用即直接修改原變量。基礎用法:定義時必須綁定已存在變量(不可未初始化或綁定臨時常量);作爲函數參數可避免傳值拷貝,直接修改變量(如交換函數);返回引用時不可返回局部變量(函數結束後變量銷燬,導致未定義行爲);const引用(常量引用)可綁定臨時變量(如`const int &c = 5`),且防止通過引用修改原變量。 注意事項:引用必須初始化;不可返回局部變量引用;僅const引用可綁定臨時變量。引用與指針區別:引用需初始化且不可變,指針可空、可改指向;引用無需解引用,更簡潔安全,適合參數/返回值;指針靈活,用於動態內存管理。核心記住:引用是變量別名,高效且安全,需注意初始化和返回規則。
閱讀全文