C 運用模板優雅得建立物件(類似工廠模式)

2021-10-05 03:38:44 字數 1528 閱讀 1213

直接上**

creator類

#include

#include

#define regobj(t,strname) objcreatehelperinst##t(strname);

#define createobj(strname) objcreator::getinstance()->createobj(strname);

typedef

void*(

*fcreate)()

;class

objcreator

void

registercreatemethod

(qstring strname, fcreate func)

void

*createobj

(qstring strname)

return

nullptr;}

private

:objcreator()

qmap m_map;};

template

<

typename t>

class

objcreatehelper

static

void

*createobj()

//這裡還可以再建立destoryobj

};

基類

class

baseinte***ce

;

派生類標頭檔案

#include

"baseinte***ce.h"

class

classinherit

:public baseinte***ce

;

派生類cpp

#include

"classinherit.h"

#include

"objcreator.h"

#include

regobj

(classinherit,

"inherit"

)classinherit::

classinherit()

void classinherit::

func()

main函式

#include

#include

"objcreator.h"

#include

"baseinte***ce.h"

intmain

(int argc,

char

*ar**)

執行結果

當然,objcreatehelper裡也可以加上destoryobj函式,安全地銷毀物件。

這種方式在管理多個介面類時還是挺好看的~

C 類物件建立

c 類物件 類定義實際上並沒有建立任何任何spreadsheetcell,只是指定單元格的形狀和行為。物件的建立 使用類建立得到的物件時,會使用具體的值定義每個屬性,將每個操作繫結到相應的方法,展現了某個物件在資料和行為上的個性。建立乙個類物件,與宣告乙個內建型別的普通變數相似,應該根據給定的乙個初...

C 運用FileInfo類建立 刪除檔案

通過fileinfo類,我們可以方便地建立出檔案,並可以訪問檔案的屬性同時還可以對檔案進行開啟檔案 關閉檔案 讀寫檔案等基本的操作。下面的 顯示了如何建立乙個文字檔案並且去訪問其建立時間 檔案的絕對路徑以及檔案屬性等檔案資訊,最後程式還給出了刪除檔案的方法。fileinfo fi new filei...

C 類和物件的模板

在程式設計中往往尊在這樣的兩種情況,一種是兩個或多個函式的程式結構相同,區別僅在於其引數型別或函式返回型別不同 另一種是兩個或多個類的結構相同,差別僅在於部分類的成員的型別或成員函式的型別及引數的型別不同。不論哪種情況,其程式框架都基本相同,只是具體細節不同。c 提供了模板機制,利用這一機制,可簡化...