使用類建立全域性變數 全域性靜態變數供使用)

2021-06-16 17:51:43 字數 710 閱讀 9525

總所周知:static 變數是全域性有效地,程式結束的時候才會析構

依賴於這一點:

我們可以用於定義全域性變數,並且比較優雅的實現全域性變數的使用:

1. 類本身作為全域性變數使用

依賴另一點:當類的建構函式為私有時,不能例項化該類物件 

class myclass

public:

static myclass* getinstance()

publice:

...}

使用方法:myclass::getinstance() 獲取類,該類就會全域性有效,並且只會有乙份

2. 變數作為全域性變數被使用

像下面的這個,儲存乙個全域性變數myprefix(->->->) ,使用方法myclass::getprefix() 獲取

使用myclass::addprefix(myclass::getprefix()) 可以新增乙個"->"

class myclass

static void addprefix(cstring& cstr)

}

3. 當然了,還有extern方法使用全域性變數的方法:

a.cpp中定義了乙個全域性變數 int g_bpayflag;

b.cpp中希望和a.cpp公用這個全域性變數的話,定義 extern int g_bpayflag 就可以使用了

區域性變數,區域性靜態變數,全域性變數,全域性靜態變數分別

c 記憶體到底分幾個區?一 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結構中的堆是兩回事,分配方式倒是類似於鍊錶,呵呵。3 全域性...

全域性變數,全域性靜態變數,區域性靜態變數,區域性變數

變數可以分為全域性變數 靜態全域性變數 靜態區域性變數和區域性變數。按照儲存區分 全域性變數 靜態全域性變數和靜態區域性變數都存放在記憶體的全域性資料區,區域性變數存放在記憶體的棧區。按作用域分 全域性變數在整個工程檔案內都有效 靜態全域性變數只在定義它的檔案內有效 靜態區域性變數只在定義它的函式內...

區域性變數,區域性靜態變數,全域性變數,全域性靜態變數分別

c 記憶體到底分幾個區?一 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結構中的堆是兩回事,分配方式倒是類似於鍊錶,呵呵。3 全域性...