C 的靜態成員變數和靜態成員函式詳解

2022-09-21 08:27:10 字數 1455 閱讀 8664

目錄

static int a = 10;//在靜態區分配空間,不在堆疊

在靜態區分配空間,不在堆疊分配空間。因此,只有等到所以函式全部執行完成後,才會釋放空間。

void text()

static int m_c;

private:

int m_a;

int m_b;

static int m_d;

};正確寫法:靜態成員變數初始化,一定在類外。

class aa

~aa()

private:

int m_a;

int m_b;

static int m_d;

};int aa::m_c = 0;//public下靜態變數初始化

int aa::m_d = 1;//private下靜態變數初始化

int main(int arg, char** args)

結果:例子1:

class aa

static int m_c;

int get_c()

private:

int m_a;

int m_b;

};int aa::m_c = 0;

int main(int arg, char** args)

static int m_c;

private:

int m_a;

int m_b;

};int aa::m_c = 0;

int main(int arg, char** args)

在private下:必須提供函式,才能訪問和修改s變數值。

class aa

static void set_md(int d)

static int get_md程式設計客棧()

private:

int m_a;

int m_b;

static int m_d;

};int aa::m_d = 1;

int main(int arg, char** args)

結果:class a ;

int main()

結果:結果:居然是8,不是12。因為static成員是命名空間屬於類的全域性變數,儲存在data區(靜態區)。

#include

using namespace std;

class student

static double get_total_score()

static double get_count()

};int student::count = 0;

double student::total_score = 0.0;

int main(int arg, char** args)

本文標題: c++的靜態成員變數和靜態成員函式詳解

本文位址:

C 靜態成員變數和靜態成員函式

資料成員可以分靜態變數 非靜態變數兩種.靜態成員 靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名 靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員.因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜...

C 靜態成員變數和靜態成員函式

資料成員可以分靜態變數 非靜態變數兩種.靜態成員 靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名 靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員.因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜...

C 靜態成員變數和靜態成員函式

靜態成員變數和靜態資料成員並不屬於某乙個類物件,而是整個類,為所有物件共有,下面介紹 靜態成員變數和靜態資料成員的一些特徵 class a int tmain int argc,tchar argv 結果如下 1 class a const char a c b 可以通過作用域操作符,類的物件,引用...