Home > Ren's Free Time > Template pada C++

Template pada C++

Dalam pemrograman, terutama yang sangat tergantung pada tipe variable, sering kali kita direpotkan dengan harus membuat fungsi yang berfungsi sama tapi dengan tipe variable berbeda. Untuk itu pada C++ dikeluarkanlah sebuah keyword baru, yaitu template.Dengan penggunaan template kita bisa membuat sebuah fungsi yang bisa mendukung segala macam tipe variable. Penggunaan template tidak terbatas hanya pada fungsi tapi juga mencakup class( termasuk juga struct,union).Secara garis besar penggunaan template dapat dibagi 2 yaitu template pada fungsi(function template)dan template pada Class (class template). Ok, Langsung saja kita lanjutkan petualangan ini😀

Template Function

Berikut ini merupakan template fungsi untuk mencari nilai maksimum pada suatu array.

template <class T> T max( T x[], int jumlah)

{

T max = X[0];

for(int i=1; i< jumlah; i++)

if(max<x[i])

max=x[i];

return max;

}

Keyword Template mengindikasikan bahwa deklarasi fungsi tersebut merupakan definisi suatu template. Sedangkan keyword class mengindikasikan bahwa T merupakan salah satu type parameter. Dan keyword class dapat diganti dengan parameter typename.

Berikut ini contoh Function Template.

#include <iostream>
using std::cout;
using std::endl;
template<typename T> T max(T x[], int len)
{
T max = x[0];
for(int i = 1; i < len; i++)
if(max < x[i])
max = x[i];
return max;
}

int main(void)
{
int small[] = { 1, 24, 34, 22};
long medium[] = { 23, 245, 123, 1, 234, 2345};
double large[] = { 23.0, 1.4, 2.456, 345.5, 12.0, 21.0};

int lensmall = sizeof small/sizeof small[0]; /* untuk memperoleh panjang array */
int lenmedium = sizeof medium/sizeof medium[0]; /* untuk memperoleh panjang array */
int lenlarge = sizeof large/sizeof large[0]; /* untuk memperoleh panjang array */

cout << endl << max(small, lensmall);
cout << endl << max(medium, lenmedium);
cout << endl << max(large, lenlarge);

cout << endl;
return 0;
}

Class Template

Berikut ini defini Class Template


template <class T> class CExample {

T  Variable;

//Code untuk class

}

Saya rasa untuk pembentukan class  dari class template lain tidak akan jauh berbeda seperti pada function template, karena hanya membutuhkan sedikit penyesuaian.

Semoga bermanfaat :D

Referensi: Dari berbagai sumber

 

  1. No comments yet.
  1. No trackbacks yet.

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

%d bloggers like this: