網頁

2016年11月13日 星期日

Templates part1

定義函式(function)或類別(class)時,可以先不指定參數、變數或者是資料成員的型別。

優點: 為了讓函式或者類別不要一直重複宣告,可以利用template去簡化code。

Complication:

#include <iostream>
using namespace std;

int max(int x, int y)
{
    return (x > y) ? x : y;
}
int max(int x, int y)
{
    return (x > y) ? x : y;
}

int main()
{
 cout << max(1.22,2.11);
    return 0;
}

Template:

#include <iostream>
using namespace std;

//define a function template not a general function
template < typename T >  void display(T, T);
template < typename T >  void display(T xint y);
template < typename T1typename T2 >  void display(T1 xT2 y);
template <class T> T maxi(T x, T y);

int main()
{
    cout << maxi(20,30) << endl;
    cout << maxi(20.56,3.897) << endl;

    display(20,30);
    display("anil","anjali");
    display(12.36,56.78);
}

template <typename T>  void display(T x, T y)
{
    cout << x << "and" << y << endl;
}

template <typename T>  void display(T x, int y)
{
    for (int i = 1; int <= y; i++){
    cout << x << endl;
    }
}

template <typename T1typename T2>  void display(T1 x, T2 y)
{
    cout << x << "and" << y << endl;
}

p.280

template < class T > T maxi(T x, T y) 
{
    return ( x >= y ) ? x : y;


}

沒有留言:

張貼留言