Template
Templates Teknik membuat tipe data yang berupa arameter, artinya data tersebut dapat berubah - ubah tergantung parameter yang di berikan saat inisialisasi.
Contoh Template Terdapat sebuah cetakan patung yang terbuat dari logam. Bila seseorang ingin membuat sebuah patung yang terbuat dari gips, masukkan gips ke dalam cetakan. Bila menginginkan patung lilin maka ia harus memasukan lilin ke dalam cetakan
Template Tipe data yang dapat berubah-ubah tergantung kebutuhan. Bila diinginkan tipe data int, maka tipe data yang dijadikan template akan berubah menjadi int. Bila diinginkan tipe data berupa kelas X, maka tipe data tersebut berubah menjadi kelas X.
Syntax Tambahkan sintaks berikut di bagian atas template< typename T > atau template< class ElementType > template< typename T, typename K >
Template Fungsi Artinya sebuah fungsi dapat memiliki tipe data parameter yang dapat ber -ubah-ubah tergantung kebutuhan. Contoh: Fungsi untuk menukar dua buah variabel membutuhkan argumen yang tergantung tipe data variable tersebut Jika variabel yang akan ditukar bertipe int, maka dibuat fungsi dengan argumen int.Jika yang akan ditukar bertipe double, maka dibuat fungsi dengan argumen double.
Program tanpa template #include <iostream.h> void Tukar (char & a, char& b) { char temp = a; a = b; b = temp; } void Tukar (long& a, long& b) long temp = a; a=b; b=temp; void Tukar (double & a, double & b) double temp=a; a=b; b=temp; } void main () { long x = 10; long y=20; Tukar(x,y); char a=‘A’; char b= ‘B’; Tukar (a,b); double d1=3.14; double d2=2.78; Tukar (d1,d2); }
Function template #include <iostream.h> using namespace std ; template <typename T> void Tukar(T& a, T& b) { T temp = a; a= b; b= temp; } main () long x= 10; long y = 20; Tukar(x,y); char a = 'A'; char b='B'; Tukar(a,b); double d1 = 3.14; double d2 = 2.78; cout<< d1; Tukar (d1, d2); cout<< d2; }
Function template #include <iostream> using namespace std; template< typename T > void printArray( T array, int count ) { for ( int i = 0; i < count; i++ ) cout << array[ i ] << " "; cout << endl; } int main() const int ACOUNT = 5; const int BCOUNT = 7; const int CCOUNT = 6; int a[ ACOUNT ] = { 1, 2, 3, 4, 5 }; double b[ BCOUNT ] = { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7 }; char c[ CCOUNT ] = "HELLO"; // 6th position for null cout << "Array a contains:" << endl; printArray( a, ACOUNT ); cout << "Array b contains:" << endl; printArray( b, BCOUNT ); cout << "Array c contains:" << endl; printArray( c, CCOUNT ); system("pause"); return 0; }
Buat function template yang melakukan operasi perkalian matrik dan suatu bilangan. Tipe data matrik dan bilangan pengalinya harus fleksibel. Tambhakan program di atas untuk penambahan antar matrik, lalu dikalikan suatu bilangan. Tipe data kedua matrik dan bilangan pengalinya harus fleksibel
Class template #include <iostream> using namespace std ; template<typename T> class KelasSaya { public: T getNilaiTerkecil(T a, T b) if(a<b) return a; else return b; }; void Tukar(T& a, T& b) T temp = a; a = b; b= temp; main () { KelasSaya<double> objek; double x= 10; double y = 20; cout<< x << "\n" ; objek.Tukar(x,y); cout<< x << "\n"; cout<<objek.getNilaiTerkecil(x, y)<< "\n"; system("pause"); }