全局對象是實現(xiàn)數(shù)據(jù)共享的一種方法,由于它處處可見,因此不夠安全所以應該在程序中少使用全局對象,對于實現(xiàn)類的多個對象之間的數(shù)據(jù)共享可以改用靜態(tài)成員(靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)).
在一個類中,若將一個數(shù)據(jù)說明為static(靜態(tài)),則該數(shù)據(jù)稱為靜態(tài)數(shù)據(jù),它告訴編譯器無論建立多少個該類的對象,都只有一個靜態(tài)數(shù)據(jù)的拷貝,這個拷貝被所有的類對象共享,靜態(tài)數(shù)據(jù)屬于類共享,不屬于對象獨有.他的值對每一個對象都是一樣的.對靜態(tài)數(shù)據(jù)成員的值的更新,即是對所有對象的該靜態(tài)數(shù)據(jù)成員值的更新.
靜態(tài)數(shù)據(jù)使用static開頭,在類內(nèi)體說明,在類體外定義,分配內(nèi)存并初始化.
class A
{
public:
static int m_num; //在類體內(nèi)說明靜態(tài)函數(shù)
};
int A::m_num = 0; //在類體外定義靜態(tài)函數(shù)