1. 程式人生 > >初學c++之template

初學c++之template

初學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寫的函式似乎不能在之前定義……