//函数模板 template <class T>
T mymax(T a, T b)
{
T m;
m = a>b?a:b;
cout<<"max is :"<<m<<endl;
}
int main()
{
int x=1, y=2;
double a=1.1, b=2.2;
mymax(x,y);
mymax(a,b);
mymax<int>(a,b);//显示实例化 return0;
}
类模板
template <class T, int size>
class Stack
{
T buffer[size];
int top;
public:
Srack(){top = -1;}
bool push(const T &x);
bool pop(T &x);
};
//外部定义函数 template <class T, int size>
bool Stack <T, size>::push(const T &x){......}
//类模板的实例化需要在程序中显示指出
Stack<int, 100> s1;
Stack<double, 200> s2;
//同类模板之间才共享静态成员template <class T>
class A
{
staticint x;
T y;
.....
};
A<int> i1, i2;//i1, i2共享x
A<double> a1, a2;//a1, a2共享另一个x
函数模板//函数模板 template <class T>T mymax(T a, T b){ T m; m = a>b?a:b; cout<<"max is :"<<m<<endl;}int main(){ int x=1, y=2; double a=1.1, b=2.2; mymax(x,y); mymax(a,b);