Template Usage Scenario 1

这一阵在研究C++ Template的使用。
例:

#include <iostream>

using std::cout;
using std::endl;

template <class numType>

class Compare
{
    Compare(numType a, numType b)
    {
        x=a;
        y=b;                                           
    }
   
    numType maxA()
    {
        return x>y?x:y;   
    }
    numType minA()
    {
        return x<y?x:y;
    }           
private
    numType x;
    numType y;       
};

int TemplateUsage()
{
    Compare<int> cmp1(3,7);
    cout<<"Max: "<<cmp1.maxA();
    cout<<"Min: "<<cmp1.minA();
   
    Compare<double> cmp2(1.1, 2.2);
    cout<<"Max: "<<cmp1.maxA();
    cout<<"Min: "<<cmp1.minA();
   
    Compare<char> cmp3('a', 'A');
    cout<<"Max: "<<cmp3.maxA();
    cout<<"Min: "<<cmp3.minA();
        
    return 0;

}

如果将类的成员函数maxA 与minA的定义写在类的外部, 则需要如下写法

template <class numType>

class Compare
{
    Compare(numType a, numType b)
    {
        x=a;
        y=b;                                           
    }
   
    numType maxA();
   
    numType minA();
             
private
    numType x;
    numType y;       
};

template <class numType>
numType Compare<numType>::maxA()
{
    return x>y?x:y;   
}


template <class numType>
numType Compare<numType>::minA()
{
    return x<y?x:y;   
}





你可能感兴趣的:(Template Usage Scenario 1)