声明一个实现任意类型数据存取的类模板Store,可通过具体数据类型参数对类模板进行实例化
#include <iostream>
using namespace std;
template <class T> //类模板:实现对任意类型的数据进行存取
class Store{
private:
T item; //item用于存放对任意类型的数据
bool haveValue; //haveValue标记item是否被存入内容
public:
Store(); //默认的构造函数
T &getElem(); //提取数据的函数
void putElem(const T &x); //存入数据的函数
};
//成员函数的实现
template <class T> //默认构造函数的实现
Store<T>::Store()
:haveValue(false){}
template <class T> //提取数据函数的实现
T &Store<T>::getElem()
{
if(!haveValue) //如果提取未初始化的数据,则终止程序
{
cout << "数据未被初始化!" << endl; //打印信息
exit(1); // 退出程序
}
return item; //返回item中存放的数据
}
template <class T> //存入数据函数的实现
void Store<T>::putElem(const T &x)
{
haveValue = true; //表示item存入数据
item = x; //将X的值存入item
}
这只是类模板的简易版,根据情况添加成员属性和成员方法即可,构造函数也可写成带默认参数的构造函数,可以去掉haveValue成员属性