在乙個類中,若將乙個成員變數宣告為static,這種成員成為靜態成員變數,與一般的資料成員不同,無論建立了多少個物件,都只想有乙個靜態資料的拷貝,靜態成員變數,屬於某個類,所有物件共享
靜態變數,在編譯階段就分配空間,物件還沒有建立時,就已經分配空間
靜態成員變數必須在類內中宣告,在類外定義
靜態資料成員不屬於某個物件,在為物件分配空間中不包括靜態成員所佔空間
靜態資料成員可以通過類名或者物件名來引用
可以訪問靜態的成員變數,不可以訪問普通的成員變數
普通成員函式 都可以訪問
靜態成員函式也有許可權
可以通過物件訪問,也可以通過類名進行訪問
#includeusing namespace std;
class person
static int m_age;//加入static 靜態成員變數,會共享資料
//靜態成員變數,類內宣告,類外初始化
int m_a;
//靜態成員函式
//1.不可以訪問 普通的成員變數
//2.可以訪問 靜態成員變數
//3.靜態成員函式也是有許可權的
static void func()
//普通成員函式,可以訪問普通成員變數,也可以訪問靜態成員變數
void myfunc()
private:
static int m_other;//私有許可權,類外不能訪問
static void func2()
};int person::m_other = 0;
int person::m_age = 0;//類外初始化
void test01()
int main()
如果乙個類的成員,既要實現共享,又要實現不可改變,就用static const 修飾
定義靜態const資料成員時,最好在類內部初始化
C 靜態成員變數和靜態成員函式
資料成員可以分靜態變數 非靜態變數兩種.靜態成員 靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名 靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員.因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜...
C 靜態成員變數和靜態成員函式
資料成員可以分靜態變數 非靜態變數兩種.靜態成員 靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名 靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員.因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜...
C 靜態成員變數和靜態成員函式
靜態成員變數和靜態資料成員並不屬於某乙個類物件,而是整個類,為所有物件共有,下面介紹 靜態成員變數和靜態資料成員的一些特徵 class a int tmain int argc,tchar argv 結果如下 1 class a const char a c b 可以通過作用域操作符,類的物件,引用...