初學c++之template <typename T>

初學c++的問題

代碼1可行,代碼2出錯。

代碼1:

#include<iostream>
using namespace std;
template <typename T>

T max(T a[])
{
    int i;
    T temp=a[0];

    for(i=0;i<4;i++)
        if(a[i] < temp)
            temp=a[i];

        return temp;
}


int main()
{
    int a[4]={4,2,3,5};
    double b[4]={1.1,4.5,3.2,0.5};
    int aa;
    double bb;

    aa=max(a);
    bb=max(b);

    cout << aa <<endl;
    cout << bb <<endl;

    return 0;
}

代碼2:

#include<iostream>
using namespace std;
template <typename T>

T max(T a[]);//出錯!

int main()
{
    int a[4]={4,2,3,5};
    double b[4]={1.1,4.5,3.2,0.5};
    int aa;
    double bb;

    aa=max(a);
    bb=max(b);

    cout << aa <<endl;
    cout << bb <<endl;

    return 0;
}

T max(T a[])
{
    int i;
    T temp=a[0];

    for(i=0;i<4;i++)
        if(a[i] > temp)
            temp=a[i];

        return temp;
}

template <typename T>使用T寫的函數似乎不能在之前定義……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章