模板特化:
template
int compare(const t&v1,const t &v2)
//形參為const char *的const 引用
模板特華可以宣告而無須定義,總是包含模板形參說明符,即template<>,還必須有函式形參表,如果可以從形參推斷模板實參,則不必需顯示指定模板實參
template<>
int compare//error. function parameter list missing
template<>
int compare(const char *const &,const char *const &); //ok
在類特化外部定義成員時,成員之前不能加template<>標記
如果不特化類,而只特化類中的特定成員,則需要加上template<> 標記
類模板的部分特化:
如果類模板有乙個以上的模板形參,若只想特化某些模板形參而非全部,則可以:
template
class some_template
; //partial specialization
template
class some_template
;部分特化的模板形參是對應的模板定義形參標的子集
過載於函式模板:
函式模板可以過載
1、可以定義有相同名字組形引數目成型別不同的多個函式模板
2、可以定義與函式模板有相同名字的普通非模板函式
template
int compare(const t &,const t &); (1)
template
int compare(u,u,v); (2)
int compare(const char *,const char *); (3)
compare(1,0); //calls (1)
vectorivec1(10),ivec2(20);
cpmpare(ivec1.begin(),ivec1.end(),ivec2.begin()); //calls (2)
int arr1=;
compare(arr1,arr1+10,ivec1.end()); //calls (2)
const char const arr1="word",const_arr2="hi";
compare(const_arr1,const_arr2); //calls (3)
普通函式和函式模板都完全匹配時,匹配同樣好,非模板版本優先
讀書筆記模版
書評 讀書時間 書評的整體內容,比如 羊皮卷是一本值得多次重新閱讀的書,每次重新翻閱,不同的心境不同的狀況,都會有不同的體會,對待此書我的筆記也基本是原文摘錄和總結為主,一種個人心境全被道出,總能被書牽引著前行的感受。例 無論是7個習慣的積極主動,還是羊皮卷,選擇權是我們最重要的權利,無論我們是否是...
大話設計模式讀書筆記4 模版方法模式
模板方法是一種常見的設計模式,它定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。uml圖 具體實現 namespace templatemethod public abstract class abstractclass...
《大象》讀書筆記 4
九 獲取需求 1 定義邊界 2 發現主角 3 獲取業務用例 4 業務建模 業務用例檢視 業務用例場景 業務用例規約 業務規則 業務物件模型 業務用例實現檢視 業務用例實現場景 包圖 5 領域建模 提出領域問題 分析領域問題 建立領域模型 驗證領域模型 6 提煉業務規則 全域性規則 互動規則 內稟規則...