类模板的是为了解决这么一类问题存在的:当代码里面需要定义多个类似的类,而这些类中只有基本数据格式不一样或某个类参数不一样。类模板可以提高代码的简洁性。下面是随意的三个模板:
模板一:
template <class numtype>
class compare
{
public:
compare(numtype a,numtype b){
x = a;
y = b;
}
numtype max(){
return (x>y)?x:y ;
}
numtype min(){
return (x<y)?x:y ;
}
private:
numtype x;
numtype y;
};
模板二:
template <class A, class B>
class outmy{
public:
outmy(A a,B b){
x = a;
y = b;
}
public:
A Big(){
cout<<"Big = "<<x<<endl;
return x;
}
B Comfux(){
cout<<"Comfux = "<<y<< endl;
return y;
}
private:
A x;
B y;
};
模板三:
template <class A, int Asize>
class Arraymy{
public:
A PrintArry(){
for (int i=0 ; i<Asize; i++ )
{
cout<<"value ="<<myarry[i]<<endl;
ret=myarry[i];
}
return ret;
}
A IniArry(){
for (int i=0 ; i<Asize; i++ )
{ cout<<"input:"<<endl;
cin>>myarry[i];
ret=myarry[i];
}
return ret;
}
private:
A myarry[Asize];
A ret;
};
如下是使用:
int main(void){
//template 1:
compare < int > cmp(4,6);
int a=cmp.max();
int b=cmp.min();
cout<<"max = "<<a<<endl;
cout<<"min = "<<b<<endl;
//template 2:
outmy< int, double > myo(6,5.5);
int c = myo.Big();
double d = myo.Comfux();
//template 3:
Arraymy< int, 5 > mya;
a=mya.IniArry();
b=mya.PrintArry();
getchar();//getchar是为了防止console退出
getchar();//getchar是为了防止console退出
return 0;
}
转载于:https://blog.51cto.com/3994129/1597664