類的方法設計是 C++ 面向對象編程的核心。本文系統梳理五大類方法:靜態方法、常量方法、重載方法、默認參數、內聯方法,助你寫出高效、安全、可維護的代碼。
static ReturnType Func(Params);this 指針,不能訪問非靜態成員;private/protected 靜態數據成員;ClassName::Func() 或對象.Func();const:靜態方法本無對象,承諾不修改數據成員毫無意義。本質上是帶作用域限制的普通函數。
const:double GetValue() const;const 對象只能調用 const 方法;非 const 對象優先調用非 const 版本;const(銷毀即修改);const 方法中修改某些不影響對象可觀測狀態的成員(如訪問計數器),可用 mutable 關鍵字標記該成員。class MyClass {
mutable int accessCount_ = 0;
public:
double GetValue() const { ++accessCount_; return value_; }
};
const 可作為重載依據:void Foo(); void Foo() const;= delete 可顯式禁用特定重載,防止隱式轉換導致的意外調用:class MyClass {
public:
void Foo(int i);
void Foo(double) = delete; // 禁用 double 版本
};
MyClass() 時編譯器會報二義性錯誤。inline 或直接在類內定義;static;const(養成習慣);= delete;inline(類內定義即可)。