![]() |
Templates -- Meow
1.1.2
不能,也不應該先編譯成obj-file的templates
|
利用register的概念, 達到runtime用string選擇要new的class More...
#include "ObjSelector.h"
Public Member Functions | |
ObjSelector (std::string name, ObjBase *obj, bool autoDelete) | |
宣告一個ObjSelector實體, 並且註冊一個 ObjBase More... | |
ObjSelector (ObjBase *obj, bool autoDelete) | |
宣告一個ObjSelector實體, 並且註冊一個 ObjBase More... | |
~ObjSelector () | |
解構子 More... | |
Static Public Member Functions | |
static void | add (std::string name, ObjBase *obj, bool autoDelete) |
新增(註冊) 一個Class (必須要繼承自 ObjBase ) 並且給定其Name More... | |
static void | add (ObjBase *obj, bool autoDelete) |
新增(註冊) 一個Class (必須要繼承自 ObjBase ) 並且默認type為name More... | |
static void | del (std::string name) |
依照name刪除之前註冊過得Class More... | |
static ObjBase const * | get (std::string name) |
取得之前註冊過得Class More... | |
static ObjBase * | create (std::string name) |
回傳一個之前註冊過得Class new出來的實體 More... | |
static bool | exist (ObjBase *obj) |
利用type檢查是否有註冊過同種類的Class More... | |
static std::string | name (ObjBase *obj) |
利用type尋找name More... | |
static std::vector< std::string > | names () |
回傳所有註冊過的name More... | |
static bool | write (FILE *f, bool binary, ObjBase *obj, unsigned int fg) |
將一個物件寫到檔案裡(該物件必須要有註冊過) More... | |
static ObjBase * | read (FILE *f, bool binary) |
從檔案中讀取一個物件(該物件必須要有註冊過) More... | |
Friends | |
struct | Info |
利用register的概念, 達到runtime用string選擇要new的class
|
inline |
宣告一個ObjSelector實體, 並且註冊一個 ObjBase
|
inline |
宣告一個ObjSelector實體, 並且註冊一個 ObjBase
|
inline |
解構子
|
inlinestatic |
新增(註冊) 一個Class (必須要繼承自 ObjBase
) 並且給定其Name
|
inlinestatic |
新增(註冊) 一個Class (必須要繼承自 ObjBase
) 並且默認type為name
|
inlinestatic |
回傳一個之前註冊過得Class new出來的實體
|
inlinestatic |
依照name刪除之前註冊過得Class
|
inlinestatic |
利用type檢查是否有註冊過同種類的Class
|
inlinestatic |
取得之前註冊過得Class
|
inlinestatic |
利用type尋找name
|
inlinestatic |
回傳所有註冊過的name
|
inlinestatic |
從檔案中讀取一個物件(該物件必須要有註冊過)
|
inlinestatic |
將一個物件寫到檔案裡(該物件必須要有註冊過)
|
friend |