C++ 類模板 使用示例

注意:本文中代碼均使用 Qt 開發(fā)編譯環(huán)境

#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; //用于存放任意類型的數(shù)據(jù)
    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();
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容