Fransisca's Blog

blog buat tugas PBO..^^

template

Diposting oleh sisqa

Template adalah sebuah implementasi dari generic programming atau parameterized type. Generic programming adalah gaya pemrograman dimana algoritma ditulis dengan istilah ‘to be specified-later type’, maksudnya tipe datanya dapat dispesifikasi nanti dengan menggunakan parameter. Implementasi ini dapat dilakukan dengan 2 jenis template.

Jenis – jenis template:

1. Function template

Dengan menggunakan function template, dapat di definisikan sebuah bentuk fungsi yang berhubungan dengan overloasding function, dengan membiarkan tipe data parameter.

Contoh:

#include

using name space std;

template // mambuat template

T getmax(T a, T b) // function template

{

T result;

result = (a>b)?a:b;

return (result);

}

int main()

{

int i=5,j=6,k;

long l=10,m=5,n;

k= getmax(i,j); // cara manggil template getmax

n = getmas(l,m);

cout << k <

cout << n << endl;

return 0;

}

Pada saat template dijalankan, compiler mengenerate function yang sesuai dengan tipe data fungsi pemanggilnya.

Berbeda dengan overloading function, overloading function tidak selalu dapat digantikan oleh template, karna jika kita memiliki action yang berbeda, maka tidak dapat digantikan oleh template, sebaliknya jika memiliki action yang sama, kita dapat mempersingkat program kita dengan menggunakan template.

Template itu seperti bunglon, tetap bunglon namun dapat berubah warna sesuai kebutuhan.

2. Class template

Disebut juga generic class atau class generator, digunakan untuk mendefinisikan model class.

Generic container classes:

- Kita dapat memiliki tipe data integer atau lainnya, dengan basic operation yang sama(insert, delete, index,etc)

- Hanya dengan mendefinisikan struktur class dengan generic operation, dan system akan mengenerate definisi class on the fly.

Contoh:

#include

Template

Class mytemp //membuat class template

{

T1 t1;

T2 t2;

Public : mytemp(T1 t1,T2 t2)

{t1 = tt1; t2 = tt2;}

Void display

{Cout << t1 << “” << t2 << endl;}

};

Void main()

{

int a = 123;

double b = 456.789;

mytempmt(a,b); //membuat objek dari class template

mt.display();

}

0 komentar:

Posting Komentar