📄 demo_1_template_class_1.cpp
字号:
//***************************************************
#include <iostream.h>
#include <stdlib.h>
template <class T> //类模板的声明或类界面的定义
class Store
{
private:
T item;
int haveValue;
public:
Store(void);
T GetElem(void);
void PutElem(T x);
};
//模板类的成员函数在类外实现
template <class T>
Store<T>::Store(void):haveValue(0)
{}
template <class T>
T Store<T>::GetElem(void)
{
if (haveValue==0)
{
cout<<"No item present!"<<endl;
exit(1);
}
return item;
}
template <class T>
void Store<T>::PutElem(T x)
{
haveValue++;
item=x;
}
struct Student //结构体Student
{
int id;
float gpa;
};
void main(void)
{
Student g={1000,23}; //定义Student类型结构体变量并初始化
Store<int> S1,S2; //定义Store类对象,其中数据成员item为int类型
Store<Student> S3; //定义Store类对象,其中数据成员item为Student类型
Store<double> D; //定义Store类对象,其中数据成员item为double类型
S1.PutElem(3); //向对象S1中存入数据(初始化对象S1)
S2.PutElem(-7); //向对象S2中存入数据(初始化对象S2)
cout<<S1.GetElem()<<","<<S2.GetElem()<<endl; //输出对象S1和S2数据成员
S3.PutElem(g); //向对象D中存入数据(初始化对象D)
cout<<"The student id is: "<<S3.GetElem().id<<endl; //输出对象S3数据成员
cout<<"Retrieving object D: " ;
cout<<D.GetElem()<<endl; //输出对象D数据成员
// 由于D未经初始化,在执行函数D.GetElement()过程中导致程序终止
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -