- 泛型编程
- C++模板全特化和偏特化
- 对函数模板:
- 对类模板
模板分为类模板和函数模板,特化分为特例化(全特化)和部分特例化(偏特化)。
对模板特例化是因为对特定类型,可以利用某些特定知识来提高效率,而不是使用通用模板
对函数模板:- 模板和特例化版本应对应同一头文件,所有同名模板的声明应放到前面,接着是特例化模板版本。
- 一个模板被称为全特化的条件:1. 必须有一个主模板类; 2. 模板类型被全部明确化。
模板函数:
templatevoid fun(T1 a, T2 b) { cout << "模板函数" < void fun (int a, char b) { cout <<"全特化"< 函数模板,只有全特化,偏特化功能可以通过函数重载完成。
对类模板templateclass Test { public: Test(T1 i, T2 j):a(i), b(j) { cout<<"模板类"< class Test { public: Test(int i, char j):a(i), b(j) { cout<<"全特化"< class Test { public: Test(char i, T2 j):a(i), b(j) { cout<<"偏特化"< 对主版本模板类、全特化类、偏特化类的调用优先级顺序 从高到低是:全特化类 > 偏特化类 > 主版本模板类



