模板概述
泛型是C++中的重要特性。据说,已经在C++社区中已经取代面向对象成为C++的主要编程泛型。STL和boost库等都广泛使用了泛型。
泛型,就是C++的模板机制。
模板可以看作是C++宏的衍生。宏,就相当于是文本文件中的替换。C++编译器在编译前,先把所有使用宏的地方,用宏的定义替换掉宏。
在Java,.net,ruby等现代语言中都没有宏这种语法的地位。
宏是另程序变得晦涩难懂的一个原因!我认为在程序中应该尽量避免使用宏!
模板也可以看作是一种模板。C++编译器在编译之前,将创建模板的具体类型的源代码,然后再编译成二进制代码。
模板技术
模板类的声明和定义,形如:
template class Manage{…全部内联函数实现!};
函数模版的定义,形如:
template
void trim(SequenceT &, const std::locale & = std::locale());
模板的特化
模板类的特化
1)首先定义基泛型:
template class Manage{…全部内联函数实现!};
2)然后定义特化的泛型:
#include 上面基泛型的文件
template<> class Manage
{…全部内联函数实现!};
特化的泛型必须自己实现所有基泛型定义的成员函数和静态成员。
模板类的成员函数的特化
如果我们希望特化的泛型继承绝大部分的基泛型的代码。
那么只需定义特化的成员函数即可!
在基泛型的定义后面加上特化成员函数:
template<>
void Manage::sayHello(void){
cout<<"B"< t<