Template

Pengertian Template

Overloading terhadap fungsi kiranya sudah bukan hal yang asing lagi bagi kita. Dengan menggunakan overloading terhadap fungsi dapat diciptakan beberapa fungsi yang menangani suatu proses dengan tipe data yang berlainan, tetapi memakai nama yang sama, misalnya :
void tukar(int &x, int &y)
{
int temp;

tmp = x;
x=y;
y=temp;
}

void tukar(double &x, double &y)
{
double tmp;

tmp = x;
x=y;
y = tmp;
}

Pendefinisian fungsi dengan nama yang sama seperti itu tidak lain adalah untuk memudahkan dalam mengingat suatu fungsi. Anda cukup menggunakan nama yang sama untuk menyatakan operasi yang sama, walaupun tipe data berlainan. Inilah keuntungan overloading terhadap fungsi. Kekurangan nya , mau tak mau kode untuk sejumlah fungsi (walau dengan nama yang sama)tetap harus dituliskan.
untuk menyederhanakan penulisan kode pada masalah seperti di atas C++ menyediakan suatu kemampuan yang disebut template. Dengan menggunakan template, pemrogram dapat mengarahkan kompiler agar membangkitkan kode fungsi pada berbagai tipe data yang diinginkan secara otomatis.

template sering juga disebut sebagai “cetak biru”, berfungsi seperti menduplikasi sesuatu dengan cetakan.
template fungsi sangat bermanfaat untuk fungsi-fungsi yang menangani tugas yang sama dan berbeda hanya pada tipe data..

Membuat Template untuk fungsi

contoh template untuk fungsi adalah seperti berikut :
template <class T> void tukar(T &x, T &y){
T tmp;

tmp = x;
x=y;
y=tmp;
}

Kata kunci template digunakan untuk memberitahukan kepada kompiler bahwa pernyataan yang terletak setelah kata-kunci ini merupakan suatu template. Sesudah kata kunci template terdapat <class T>. Setelah kata class yang terletak di dalam <> terdapat pengenal. Pada contoh diatas berupa T. Pengenal ini selanjutnya menggantikan posisi tipe data pada pendefinisian fungsi. Perhatikan bahawa pada contoh diatas , pengenal T digunakan pada bagian argumen dan juga pendefinisian variabel tmp.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s