码迷,mamicode.com
首页 > 其他好文 > 详细

类模板

时间:2014-06-10 13:45:42      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   http   color   

为了说明类模板,先看一个类模板的例子

#include <iostream>

using namespace std;

template<class T>

class Compare//定义一个比较类(用于比较两个数的大小)
{
public:

    //使用初始化表的形式初始化数据成员
    Compare(T x, T y):a(x),b(y){}
    
    T max(void)//比较两个数据,并且返回最大值
    {
        return a > b ? a : b;
    }

    T min(void)//比较两个数据,并且返回最小值
    {
        return a < b ? a : b;
    }

    //显示比较的数据
    void show( );     
 
private://两个比较的数
    T a;
    T b;
};

//显示比较的数据
template<class T>  
void Compare<T>::show( )     
{  
    cout<<a<<" "<<b;  
}  



void main()
{
    Compare<int>   cmp1(1,2);
    Compare<float> cmp2(3.55,2.7);
    Compare<char>  cmp3('A','z');

    cmp1.show();
    cout<<" 中最大的数是:"<<cmp1.max()<<endl;
    
   cmp1.show();
   cout<<" 中最小的数是:"<<cmp1.min()<<endl;
    
    cmp2.show();
    cout<<" 中最大的数是:"<<cmp2.max()<<endl;
    
   cmp2.show();
   cout<<" 中最小的数是:"<<cmp2.min()<<endl;

    cmp3.show();
    cout<<" 中最大的字符是:"<<cmp3.max()<<endl;
    
   cmp3.show();
   cout<<" 中最小的字符是:"<<cmp3.min()<<endl;
   
   system("pause");
}

执行结果:

bubuko.com,布布扣


上面的程序是实现比较两个数据的大小


代码还可以写成下面的形式

#include <iostream>

using namespace std;

template<class T>

class Compare//定义一个比较类(用于比较两个数的大小)
{
public:

    //使用初始化表的形式初始化数据成员
    Compare(T x, T y);
    T max(void);//比较两个数据,并且返回最大值
    T min(void);//比较两个数据,并且返回最小值
    void show( );//显示数据     
 
private://两个比较的数
    T a;
    T b;
};

//使用初始化表的形式初始化数据成员
template <class T>
Compare<T>::Compare(T x, T y)
{
    a = x;
    b = y;
}

template <class T>
T Compare<T>::max(void)//比较两个数据,并且返回最大值
{
    return a > b ? a : b;
}

template <class T>
T Compare<T>::min(void)//比较两个数据,并且返回最小值
{
    return a < b ? a : b;
}
//显示比较的数据
template<class T>  
void Compare<T>::show( )     
{  
    cout<<a<<" "<<b;  
}  



void main()
{
    Compare<int>   cmp1(1,2);
    Compare<float> cmp2(3.55,2.7);
    Compare<char>  cmp3('A','z');

    cmp1.show();
    cout<<" 中最大的数是:"<<cmp1.max()<<endl;
    
   cmp1.show();
   cout<<" 中最小的数是:"<<cmp1.min()<<endl;
    
    cmp2.show();
    cout<<" 中最大的数是:"<<cmp2.max()<<endl;
    
   cmp2.show();
   cout<<" 中最小的数是:"<<cmp2.min()<<endl;

    cmp3.show();
    cout<<" 中最大的字符是:"<<cmp3.max()<<endl;
    
   cmp3.show();
   cout<<" 中最小的字符是:"<<cmp3.min()<<endl;
   
   system("pause");
}

执行结果和上面的代码一样


类模板的形式:template<class  类型名>

:template<class T>  T表示数据类型名


类模板中的成员函数在函数外部定义的形式:

template<class  类型名>

类名<类型名> ::成员函数名


:

template<class T>

Complare<T>::show()

类模板,布布扣,bubuko.com

类模板

标签:style   class   blog   code   http   color   

原文地址:http://blog.csdn.net/u010105970/article/details/29382925

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!