#include<iostream.h>
#include<stdlib.h>
struct Student //结构体Student
{
int id;//学号
float gpa;//平均分
};
template <class T>//类模板:实现对任意类型数据进行存取
class Store
{
private:
T item;
int haveValue;
public:
Store();
T GetElem();
void PutElem(T x);
};
template <class T>
Store<T>::Store(){haveValue=0;}
template <class T>
T Store<T>::GetElem()
{
if(0==haveValue)
{ cout<<"No item present!"<<endl;
exit(1);
}
return item;
}
template <class T>
void Store<T>::PutElem(T x)
{
haveValue++;
item=x;
}
int main()
{
Student g={1000,23};
Store<int> S1,S2;
Store<Student> S3;
Store<double> D;
S1.PutElem(3);
S2.PutElem(-7);
cout<<S1.GetElem()<<" "<<S2.GetElem()<<endl;
S3.PutElem(g);
cout<<"The student id is"<<S3.GetElem().id<<endl;
// cout<<"Retrive object D";
// cout<<"D.GetElem()<<endl"
return 0;
}