CPP_template
2018-09-09 15:33
190 查看
泛型编程是独立于任何特定类型的方式编写代码。模板是泛型编程的基础,模板使程序员能够快速建立具有类型安全的类库集合和函数集合,它的实现,方便了大规模的软件开发。
模板提供通用类型和通用函数,定义中包含template,和一对尖括号<>,尖括号里面是模板参数。模板参数与普通参数的区别在于,模板参数不仅可以传变量和值,还可以传类型。
模板应放到头文件中。模板本质上就是一种宏定义。
1. 函数模板
template<类型形式参数表> 返回类型 functionName(形式参数表)
{
//函数定义体
}
其中返回类型可以包含基本数据类型,也可以包含类类型。如果是类类型,则需加前缀class。
template <typename T> T abs(T x)
{
return x<0? -x:x;
}
int n=5; double d=-5.5;
cout<<abs(n)<<endl;
cout<<abs(d)<<endl;
// 模板函数
template <class T> T power(T a, int exp)
{
T ans = a;
while(--exp>0){
ans *= a;
}
return (ans);
}
应用时:
函数名 <模块参数> (函数参数)
power<int> (2, 2) = 4;
2. 类模板
template <模板参数表> class 类名
{
类成员声明;
};
在类模板以外定义成员函数
template <模板参数表> 类型名 类名<参数列表>::函数名(参数表)
template <typename T> class Example{};
模板类中的函数都是模板函数。
template <class T> Node<T>::~Node()
{
......
}
相关文章推荐
- [置顶] 使用 acl_cpp 的 HttpServlet 类及 google 的 ctemplate 库编写 WEB 应用
- C++中template的.h文件和.cpp文件的问题
- Cpp复习(三)template library and c++11
- Template in cpp: two methods
- 使用Template的对Cpp程序的影响
- CPP Templates 之 template 关键字的用法技巧
- template 不能分别在.h和.cpp中定义模板
- vector.cpp -- introducing the vector template.
- Dev-Cpp Template文件不完全讲解----建立QT4工程实例
- Dev-Cpp Template文件不完全讲解----建立QT4工程实例
- How to define a template class in a .h file and implement it in a .cpp file
- c++ why can't class template hide its implementation in cpp file?
- 关于cpp中的template多文件限制
- Cpp模版Template-笔记
- template.cpp
- jQuery中template(模板)应用例子
- jsoncpp解析
- vs中 .h和.cpp之间的切换
- redis 创建多例bean(redisTemplate)
- 行为模式之模板方法模式(Template Pattern)C++实现