函数模板&类模板

#include <iostream>
#if 0//函数模板
template<typename T>
T max(T a, T b, T c)//函数模板
{
    if (a < b)
    {
        a = b;
    }
    if (a < c)
    {
        a = c;
    }
    return c;
}
#endif
template<class T>
class Compare
{
public:
    T max(T a, T b);
    T min(T a, T b);
};
template<class T>
T Compare<T>::max(T a, T b)
{
    return a < b ? b : a;
}
template<class T>//在类外定义必须制定此种格式
T Compare<T>::min(T a, T b)
{
    return a < b ? a : b;
}
int main()
{
#if 0
    int num = max(1, 2, 3);
    //float num2 = max(1.1, 2.3, 4.5);//默认double
    double num3 = max(1.1, 2.3, 4.5);
    long long num4 = max(1, 2, 3);
#endif
    Compare<int> cint;
    std::cout << cint.max(1, 2) << std::endl;

    Compare<double> cdouble;
    std::cout << cdouble.min(1.1, 2.3) << std::endl;
    getchar();
    return 0;
}

 

posted @ 2014-12-01 16:05  zzyoucan  阅读(191)  评论(0编辑  收藏  举报