如果我们要想做一套通用于不同类型的功能函数,那么我们可以利用C++的模板机制只需要写一套代码。模板是实现代码重用机制的一种工具,类似于JAVA的泛型,模板分为函数模板和类模板。
函数模板
template <class 类型参数>
返回类型 函数名(模板参数表)
{
函数体
}
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
template<class T1,class T2>
bool Better(T1 x,T2 y)
{
return x>y?true:false;
}
int main(){
double d=2.8;
int c=15;
bool a;
a=Better(d,c);
cout<<a;
return 0;
}
类模板
template <class 类型>
class 类名
{
};
在定义模板类时在类名后缀添加<T>,例如下面的pop函数。
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
const int N=10005;
template<class T>
class Stack
{
private:
T S[N];
int size;
public:
T pop();
void clear(){
size=0;
}
void push(T x){
if(size==N) return;
else
S[size++]=x;
}
bool isempty(){
if(size==0)
{
return true;
}
else
{
return false;
}
}
};
template<class T>
T Stack<T>::pop()
{
if(size==0)return NULL;
else{
return S[--size];
}
}
int main(){
Stack<int> stack;
stack.clear();
for(int i=0;i<5;i++)
{
stack.push(i);
}
while(!stack.isempty())
{
cout<<stack.pop()<<endl;
}
return 0;
}
看过了类模板的定义和使用之后我们就能自己打造一套适应不同类型的自定义函数和自定义类了。