#include
#include
using namespace std;
struct Student{
int id; //学号
float gpa; //平均分
};
template
class Store{//类模板:实现对任意类型数据进行存取
private:
T item; //item用来存放任意类型的数据
bool haveValue; //haveValue标记item是否已被存入内容
public:
Store();
T&getElem();// 提取数据函数
void putElem(const T&x); //存放数据函数
};
template
Store::Store() :haveValue(false){}
template
T &Store::getElem(){
//如试图提取未初始化的数据,则终止程序
if (!haveValue){
cout << “No item present!” << endl;
exit(1); //使程序完全退出,返回到操作系统。
}
return item; //返回item中存放的数据
}
template
void Store::putElem(const T &x){
//将haveValue置为True,表示item中已存入数值
haveValue = true;
item = x; //将x值存入item
}
int main(){
Stores1, s2;
s1.putElem(3);
s2.putElem(7);
cout << s1.getElem() << “” << s2.getElem() << endl;
Student g = { 1000, 23 };
Store<Student>s3;
s3.putElem(g);
cout << "The student id is" << s3.getElem().id << endl;
system("pause");
return 0;
}