template
class ccreategeneralpool
~ccreategeneralpool()
}public:
classtype * create()
template
classtype * create(tparams ... params)
void free(classtype * obj)
};//對上面的生成器包一層
template
class cinstancebasicbuild
virtual ~cinstancebasicbuild() {}
virtual void free(classtype * obj)
static std::mapm_instance_class_names;
static std::string& getclassname(classtype * obj)
return class_name;
}static void remove(classtype * obj)}};
template std::mapcinstancebasicbuild::m_instance_class_names;
template
class cinstancebuilder : public cinstancebasicbuild
cinstancebuilder(const std::string class_name)
public:
bassclass * create()
template
bassclass * create(const paramtype& ... params)
void freeobj(classtype * obj)
static cinstancebuilder * cast(cinstancebasicbuild* obj)
void free(bassclass * obj)}};
//具體建立器
template
class cinstancebuildfactory
~cinstancebuildfactory() {}
disablecopy(cinstancebuildfactory)
public:
static cinstancebuildfactory& getinstance()
public:
void setbuilder(const std::string& class_name, cinstancebasicbuild* builder)
cinstancebasicbuild* getbuilder(const std::string& class_name)
//解析物件
template
void delete(t * obj)
}private:
//!真正的生髮物件
std::map* > m_builders;
};template
class cgetinstancebuilder
return pbuilder;
}//得到具體建立器
static cinstancebuilder* getinstancebuilder(const std::string& class_name)
return null;}};
//介面巨集 用巨集1建立的物件 必須用巨集2進行刪除
//獲取物件create器具
#define getinstancebuilder(class, basicclass) \
cgetinstancebuilder::getinstancebuilder(#class)
//釋放物件
#define deleteinstance(basicclass , pinstance) \
cinstancebuildfactory::getinstance().delete(pinstance);
C 如何利用反射構建Sql引數
首先呢,說到這個問題我們要知道泛型的概念,泛型呢你可以把它當成乙個引數,就是呼叫的時候傳入這個型別,接著就是獲取這個型別裡的所有屬性及值。我們先來建立乙個方法名getmysqlparame的方法,當然我這裡是以mysql的為例,有乙個引數,這個引數是我們不知道型別和屬性及值的實體,我們可以用泛型,也...
C 筆記 利用XML檔案構建反射表機制
在設計程式時,無論是介面或是後台 我們通常都想留給使用者乙個較為簡單的介面。而我在參與封裝語音卡開發函式包的時候,發現各種語音卡的底層函式的介面都是各種整形變數標記值,使用起來極為不變。於是就理解了前輩所寫的 中,利用xml構建反射表機制的初衷。下面我就以某一種語音卡所能相容的語音格式為例,將反射表...
C 使用反射特性構建訪問者模式
出自 c 3.0設計模式 兩個結構的物件 class element public element part public element public element element next class elementwithlink element 與反射相關的核心 abstract clas...