靜態(tài)
[TOC]
二、靜態(tài)
? 關(guān)鍵字:static
“靜態(tài)”使用場景:用作全局的。
1.靜態(tài)數(shù)據(jù)成員
依賴于類,并不依賴于對象。
所開辟的內(nèi)存并不在對象中。
對象聲明多個,但靜態(tài)數(shù)據(jù)成員只會有一份。
普通數(shù)據(jù)成員依賴于對象,對象析構(gòu)則不存在。
// Tank.cpp
class Tank {
public:
Tank() {
s_iCount++;
}
~Tank() {
s_iCount--;
}
static int getCount() {
return s_iCount;
}
static int s_iCount;
private:
string m_strCode;
};
int Tank::s_iCount = 0; // 初始化
// main.cpp
int main() {
// 通過類的訪問方法
cout << Tank::getCount() << endl;
cout << Tank::s_iCount << endl;
// 通過對象的訪問方法
Tank tank;
cout << tank.getCount() << endl;
cout << tank.s_iCount << endl;
}
2.靜態(tài)成員函數(shù)
3.靜態(tài)使用注意事項(xiàng)
- 靜態(tài)數(shù)據(jù)成員必須單獨(dú)初始化;
- 靜態(tài)成員函數(shù)不能調(diào)用非靜態(tài)成員函數(shù)和非靜態(tài)數(shù)據(jù)成員;
- 靜態(tài)數(shù)據(jù)成員只有一份,且不依賴對象而存在;
- 靜態(tài)成員函數(shù)上不允許修飾符。