标题:template《class T》到底怎么用呢!
只看楼主
一地繁华
Rank: 1
来 自:河南
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-9-17
结帖率:100%
已结贴  问题点数:5 回复次数:2 
template《class T》到底怎么用呢!
今年刚学的数据结构,可是实验书上的template<class T>就有点看不懂了。不知道到底怎么用,希望高手指点一下,最好有c++的源代码编写的例题举例说明下,在这里多谢了!,同时我也是刚加入《编程中国》,希望结交更多的编程爱好者!
搜索更多相关主题的帖子: class T template 
2010-09-17 20:31
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
得分:5 
对内置的 和 typedef 的感觉差不多
照着抄的:
#include <iostream>
#include <cstdlib>
using namespace std;

class student
{
private:
    int id;
    float gpa;
public:
    student(int a = 4, float b = 5 ):id(a),gpa(b){}
/*    student(const student &s)
    {
        id = s.id;
        gpa = s.gpa;
    }
*/
    int Get(){ return id;}
};

template<class T>
class Store
{
private:
    T item;
    int haveValue;
public:
    Store(void);
    Store(T x);
    T GetElem(void);
    //void PutElem(T x);
};

template<class T>
Store<T>::Store(void):haveValue(0)
{}

template<class T>
Store<T>::Store( T x):haveValue(1), item(x)
{}

template<class T>
T Store<T>::GetElem(void)
{
    if( haveValue == 0 )
    {
        cout<<"No item present!"<<endl;
        exit(1);
    }
    return item;
}


/*template<class T>
void Store<T>::PutElem( T x )
{
    haveValue++;
    item = x;
}*/

int main()
{
    student g(1000, 23);
    Store<int> S1(2), S2(8);
    Store<student> S3(g);

    Store<double> D;
//    S1.PutElem(3);
//    S2.PutElem(7);

    cout<<S1.GetElem()<<" "<<S2.GetElem()<<endl;

//    S3.PutElem(g);
    cout<<"The student id is "<<S3.GetElem().Get()<<endl;

    return 0;
}
2010-09-18 22:38
一地繁华
Rank: 1
来 自:河南
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-9-17
得分:0 
多谢,多谢!
2010-09-19 21:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-320745-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.416385 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved