2012/11/28

C++ Templates 模板

模板對於C語言是一個非常重要的關鍵




#include <stdio.h>
#include <stdlib.h>



template <class T> T GetTotal(T a, T b,T num)
{
    switch(num){
        case 0:
            return GetAdd(a,b);
        break;

        case 1:
            return GetMinus(a,b);
        break;

        case 2:
            return GetMutil(a,b);
        break;

        case 3:
            return GetDivide(a,b);
        break;

        default:
            return 0;
        break;

    }
    return 0;
}

template <class T> T GetAdd(T a, T b)
{
    return (a + b);
}

template <class T> T GetMinus(T a, T b)
{
    return (a - b);
}

template <class T> T GetMutil(T a, T b)
{
    return (a * b);
}

template <class T> T GetDivide(T a, T b)
{
    return (a / b);
}

int main()
{

    int sum = GetTotal<int>(100,10,0);
    if(sum != 0)
        printf("%d\n",sum);
    return 0;
}