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


    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! ";
            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!
    ";
            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;
    }
    

  • 相关阅读:
    Android端 配置极光推送
    udev的使用-minicom没有权限打开串口,更改 ttyUSB0 的权限
    【Oracle】RAC删除节点
    Linux学习(二) wget命令的使用
    Struts2拦截器
    SpringMVC实战(三种映射处理器)
    rbd_rados命令拷屏
    网络威胁防护,Azure 靠的是它?
    一块钱使用开发测试环境,助你快速打造万圣节促销应用
    想要快速搭建开发测试环境?这么做就可以!
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989513.html
Copyright © 2020-2023  润新知