c 中靜態成員變數和靜態成員函式

2021-09-25 06:41:24 字數 981 閱讀 9659

在乙個類中,若將乙個成員變數宣告為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 可以通過作用域操作符,類的物件,引用...