最近研究了下C++模板,对于C++模板有了一个初步认识,模板是C++一个很重要也是用途很广的一个属性,它很好的诠释了C++的重用属性。如下是我对模板的学习和总结:
C++模板主要分为:函数模板,类模版以及非类型模板。下面我将对这三种模板进行详细的介绍和说明。
废话少说,首先让我来看看函数模板究竟是个神马玩意。
一、定义
我们还是直接上一个简单代码,这样比较直观:
TestTemplate.h
template <typename T>
T const& Max(T const &a, T const &b)
{
return a < b ? b : a;
}
temlpate,typename是模板关键字,T(Type)代表模板类型参数(注意与非类型参数区别)。由于历史原因,typename关键字也可以由class代替,typename是C++后期才引进的,之前只能用class,目前class依然可用,但是class会给人带来一种误导T必须是class类型。所以我强烈推荐用typename.
二、使用
模板已经有了,那我们该如何使用模板呢?如下就是一个简单的调用:
#include <iostream>
#include <string>
#include "TestTemplate.h"
int main()
{ <