C++ 类模板 使用示例

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

#include 
#include 

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

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

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

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

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

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

    Store s1,s2;

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

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

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

    return a.exec();
}

你可能感兴趣的:(C++ 类模板 使用示例)