類模版偏特化示例

2021-04-12 13:02:32 字數 844 閱讀 9254

using namespace std;

template

class ctempl

};// 模版特化情形1

template

class ctempl

};// 模版特化情形2

template

class ctempl

};// 模版特化情形3

template

class ctempl

};// 模版特化情形4

template

class ctempl

};// 模版特化情形5

template

class ctempl

};// 模版特化情形6,引數完全特化

template <>

class ctempl

};/*

匹配: templateclass ctempl

*/ctemplobj1;

obj1.fun();

/*匹配: templateclass ctempl

*/ctemplobj2;

obj2.fun();

/*匹配: templateclass ctempl

*/ctemplobj3;

obj3.fun();

/*匹配: templateclass ctempl

*/ctemplobj4;

obj4.fun();

/*匹配: templateclass ctempl

*/ctemplobj5;

obj5.fun();

} 總結:類模板例項化時,編譯器會根據該例項的模版引數型別的排列特點自動地匹配合適的類模版.

類模版之偏特化

類模板 模板定義以關鍵字template開始,後接尖括號括住的模板形參表,形參前用class或者typename關鍵字修飾 template classt1,typename t2 class compare bool isequal t1 getx void setx t1 x private t...

模版的特化與偏特化

partial template specialization能夠讓你在模板 template 的所有可能的實體中特化出一組子集.1.模板的特化 template specialization 例如,定義如下的乙個模板 template class widget 然後你可以像下面那樣明確地加以特化 ...

模版的特化和偏特化

模版的特化與偏特化 模板為什麼要特化,因為編譯器認為,對於特定的型別,如果你能對某一功能更好的實現,那麼就該聽你的。模板分為類模板與函式模板,特化分為全特化與偏特化。全特化就是限定死模板實現的具體型別,偏特化就是如果這個模板有多個型別,那麼只限定其中的一部分。partial template spe...