类模板的作用:
使用类模板使用户可以为类声明一种模式,使得类中的某些数据成员、某些成员函数的参数、某些成员函数的返回值,能取任意类型
类模板的使用:
template<模板参数表>
class 类名 { …… };
如果需要在类模板以外定义其成员函数,则要采用以下的形式:
template<模板参数表>
类型名 类名<模板参数标识符列表>::函数名(参数表)
具体见程序
#include<iostream>
using namespace std;
typedef struct
{
int x;
int y;
}Point;
template<class T>
class Store
{
private:
T item;
bool flag;
public:
Store() { flag = 0; }
T Get()
{
if(flag==0)
{
printf("No item present!\n");
exit(1); //使程序完全退出,返回到操作系统
}
else return item;
}
void put(const T x)
{
flag = 1;
item = x;
}
};
int main(void)
{
Store<int> s1, s2, s3;
s1.put(3);
s2.put(-7.12);
cout<<s1.Get()<<" "<<s2.Get()<<endl;
//cout<<s3.Get()<<endl; 因为s3里面并没有存item,所以会执行exit()导致程序直接结束
Point k = {12,24};
Store<Point> p;
p.put(k);
cout<<p.Get().x<<","<<p.Get().y<<endl;
return 0;
}