關於棧上的單體結構

2021-09-30 13:29:27 字數 1247 閱讀 2105

class createfun

};

我定義了這樣乙個物件,如果希望這個物件實現乙個單體模式,那麼常用的就是在堆上構建,如:在內部這麼寫

class createfun

static int * create()

};

呼叫時可以這樣 createfun::_instance()->create();

在全域性架構這樣寫是可以的,但是如果我希望在區域性構建出乙個單體,怎麼辦?

static 定義的全域性變數只能在定義的地方使用,可以起到保護作用,所以我們如果在區域性構建單體(全域性),如果直接寫createfung_create

;安全性就不太好了。

當然我可以這麼寫:

namespace

好了這樣做可以實現區域性全域性變數,單從設計模式和實際使用,這樣寫不方便封裝和管理,我們希望在物件內部定義乙個單體的模型,可以這麼寫:

class createfun

static createfun s_singlecreate;

};

createfun createfun::s_singlecreate;

//為方便子類的通用獲取單體,可以寫這樣乙個巨集

#define builder(f) & f::s_singlecreate

可以這樣使用

createfun *a = builder(createfun); 

ok,我們也把這樣一類物件指標放到乙個陣列或者容器中進行管理,讀過設計模式應該可以理解。

關於Cold的結構和模組載入機制(上)

來自本人部落格 這幾個月一直在鼓搗的cold框架,在自己的思考和借鑑了一些已有框架的方法後,算是有些成果了。嘗試先寫點小結,作為階段性的鞏固,因為 越寫越多,連自己都有些看不懂了。在開始理清cold的結構前,有幾個關鍵的問題 這裡有三個術語 模組的檔案路徑,模組名,模組物件。其中模組名是唯一標識模組...

資料結構 棧 棧的鏈式儲存結構

資料結構 棧 棧的鏈式儲存結構 用頭插法建立的鏈棧,棧頂元素為s next所指結點 date 2017 4 14 include include define initsize 100 define elemtype char typedef struct lnode linkstack void ...

棧的鏈式結構

2 棧的鏈式結構實現 include include include typedef inttype 元素型別別名 宣告順序棧結構體 typedef struct stack stack void init stack 初始化 void push stack type 入棧 type pop sta...