定義函式(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 x, int y);
template < typename T1, typename T2 > void display(T1 x, T2 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 T1, typename 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;
}
沒有留言:
張貼留言