當多個類對象需要共享同一份數據時,類靜態成員(Static Members)提供了比全局變量更優雅的解決方案。它們屬於類本身,而非具體對象,主要優勢在於:
private 或 protected,實現信息隱藏,控制訪問權限。推薦在類的實現文件(.cpp)中定義靜態成員,確保僅有一個定義實例:
// Account.h
class Account {
private:
static double _interestRate; // 聲明
static const int nameSize = 16; // 整型常量可在類內初始化
static const char name[nameSize];
};
// Account.cpp
double Account::_interestRate = 0.05; // 定義並初始化
const int Account::nameSize; // 必需的外部定義,不可再初始化
const char Account::name[nameSize] = "Saving Account"; // 定義並初始化
類名::函數名() 或對象實例調用。類內成員函數可直接訪問靜態成員;類外需使用作用域解析運算符(Account::_interestRate)或對象/指針的成員訪問運算符(obj._interestRate),前者更清晰。