今天开始把学习C++的点点滴滴记下来。昨天看了一下模板,总结一下。
C++的模板提供了源代码重用的一种机制,不同于继承和组合(重用对象代码)。模板出现与容器有一定的渊源。为了是容器能够存储多种类型的成员, C++引入了模板,模板实现了参数化类型(parameterized type)的概念。模板的方法的例外一个优点是:是对继承还不熟悉的程序员也能正确的使用密封的容器类。
1、 模板的语法 ;
模板类
template <class T, [....]> //template<typename T, [...]>
class A{
int a();
}
int A<T>::a()
{
}
模板函数:
template <class T>
T max(T a, T b)
{
return a > b ? a : b;
}
2、模板类的定义和声明通常都放在头文件中。
这好像违背了“不要在头文件中放置分配存储空间的任何东西”。但是模板定义比较特殊, 因为在template<...>之后的任何东西都以为着编译器在当时不为它分配存储空间。直到出现模板实例。
3、模板中的常量
template<class T, int size = 100>
用处是使用编译器的内置类型,可以对这些类型常量提供默认值。
4、还没写完....