C++ 类模板 使用示例

注意:本文中代码均使用 Qt 开发编译环境

#include <QCoreApplication>
#include <QDebug>

class Student
{
public:
    int id;
    double gpa; //平均分
};

template<class T>
class Store
{
public:
    Store()
        : haveValue(false)
    {}
    T getItem();
    void addItem(T x);

private:
    T item; //用于存放任意类型的数据
    volatile bool haveValue;
};

template<class T>
T Store<T>::getItem()
{
    if(haveValue){
        return item;
    }else {
        exit(1);
    }
}

template<class T>
void Store<T>::addItem(T x)
{
    haveValue = true;
    item = x;
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    Store<int> s1,s2;

    s1.addItem(3);
    s2.addItem(-7);
    qDebug() << s1.getItem() << " " << s2.getItem();

    Student g = {1000,23};
    Store<Student> s3;
    s3.addItem(g);
    qDebug() <<"The student id is: " << s3.getItem().id;

    Store<double> d;
    d.addItem(0.5);
    qDebug() << d.getItem();

    return a.exec();
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容