2631: B1 能存各种类型数据的Store类

时间限制: 1 Sec  内存限制: 128 MB

提交: 245  解决: 177

题目描述

有一种类,海纳百川,可以对任意类型的数据进行存取,造就这个传奇的,就是模板。
下面的程序中,定义一个类模板,但其中有些成份漏掉了,请你将他们补足,使程序能正确运行,得到要求的输出结果。
请提交begin到end部分的代码。
//************* begin *****************
#include <iostream>
#include <cstdlib>
#include <iomanip>
using namespace std;
______(1)_______//类模板,实现对任意类型数据进行存取
class Store
{
private:
    T item;        //用于存放任意类型的数据
    int haveValue;  //用于标记item是否为空,0表示为空,1表示有数据
public:
    Store();          //默认构造构造函数
    __(2)__ getElem();      //提取数据,返回item的值
    void putElem(T x);//存入数据
};
______(3)_______//默认构造构造函数的实现
Store<T>::Store(void):haveValue(0){};
template<class T>   //提取数据函数的实现,返回item中的数据
T Store<T>::getElem(void)
{
    if (haveValue==0) //如果试图提取未初始化的数据,则终止程序
    {
        cout<<"NO item present!\n";
        exit(1);
    }
    return item; 
}
template<class T>//存入数据的实现
______(4)_______putElem(T x)
{
    haveValue=1;
    item = x;
}
//************* end *****************
int main()
{
    Store<int> si;
    Store<double> sd;
    int i;
    double d;
    cin>>i>>d;
    si.putElem(i);
    sd.putElem(d);
    cout <<setiosflags(ios::fixed)<<setprecision(2);
    cout<<si.getElem()<<endl;
    cout<<sd.getElem()<<endl;
    return 0;
}

输入

一个整数和一个小数,将通过putElem函数存于相应的对象实例中

输出

通过getElem()取出相应对象中存入的数据,并且输出,浮点型保留两位小数

样例输入

240 56.7183

样例输出

240
56.72

迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

#include <iostream>
#include <cstdlib>
#include <iomanip>
using namespace std;
template<class T>
class Store
{
private:
T item; //用于存放任意类型的数据
int haveValue; //用于标记item是否为空,0表示为空,1表示有数据
public:
Store(); //默认构造构造函数
T getElem(); //提取数据,返回item的值
void putElem(T x);//存入数据
};
template<class T>
Store<T>::Store(void):haveValue(0) {};
template<class T> //提取数据函数的实现,返回item中的数据
T Store<T>::getElem(void)
{
if (haveValue==0) //如果试图提取未初始化的数据,则终止程序
{
cout<<"NO item present!\n";
exit(1);
}
return item;
}
template<class T>//存入数据的实现
void Store<T>::putElem(T x)
{
haveValue=1;
item = x;
}
int main()
{
Store<int> si;
Store<double> sd;
int i;
double d;
cin>>i>>d;
si.putElem(i);
sd.putElem(d);
cout <<setiosflags(ios::fixed)<<setprecision(2);
cout<<si.getElem()<<endl;
cout<<sd.getElem()<<endl;
return 0;
}

最新文章

  1. Oracle的动态性能视图[持续更新]
  2. maven报错非法字符:\65279 错误
  3. python &amp; c
  4. iscroll修改
  5. 学习Python的第一课(简单的单元测试)
  6. 图示Servelet请求过程
  7. kubernetes1.14.0部署
  8. JAVA:简单添加菜单界面(swing)第二版
  9. [20190329]探究sql语句相关mutexes补充2.txt
  10. C# TTS 文字和英文
  11. C++11 boost TR1 TR2曾经参考过的网址整理
  12. 配置apache和php mysql的一些问题
  13. inline-block元素间隙处理
  14. [Shiro] - 基于URL配置动态权限
  15. C++开发安卓、windows下搭建Android NDK开发环境
  16. 20155332 2016-2017-2《Java程序设计》第1周学习总结
  17. [置顶] Retrofit2 初印象?
  18. C命令行参数
  19. Ubuntu 下安装adobe reader
  20. 在Kubernetes上运行SAP UI5应用(上)

热门文章

  1. 样例GeoQuiz应用开发 第2章
  2. Linux 关于umount
  3. PHP读取超大的excel文件数据的方案
  4. ThinkPHP5.X PHP5.6.27-nts + Apache 通过 URL 重写来隐藏入口文件 index.php
  5. 解决Antimalware Service Executable CPU,内存占用高的问题
  6. mysql replication driver 在jdk1.6下失效问题解决
  7. HDU 1800 hash 找出现最多次数的字符串的次数
  8. mysql 判断索引是否存在,存在则删除再创建索引(分表) 存储过程
  9. hdu 2433 Travel (最短路树)
  10. Linux下汇编语言学习笔记6 ---