1.概念
聲明static的類成員稱爲類的靜態成員,用static修飾的成員變量,稱之爲靜態成員變量;用static修飾的成員函數,稱爲靜態成員函數。靜態成員變量一定要在類外井下初始化!!
2.特性
靜態成員爲所以類對象所共有,不屬於某個實例。
靜態成員變量必須在類外面定義,定義時不添加static關鍵字,類外定義實際是分配內存
靜態成員函數沒有隱藏的this指針,不能訪問任何非靜態成員變量
靜態成員函數不能調非靜態成員函數,非靜態成員函數可用調用靜態成員函數。
3.面試題——統計一個類有多少個對象
#include <iostream>
using namespace std;
class A
{
public:
A()
{
count++;
}
A(const A& x)
{
count++;
}
static int GetCount()
{
return count;
}
private:
static int count;
};
int A::count = 0;
int main()
{
A a, b, c;
A d(c);
cout << a.GetCount()<< endl;
return 0;
}