Lompati ke konten utama
Modul 8 · Pelajaran 1 dari 217/18 dalam kursus~12 min
Pelajaran modul (1/2)

Templat Fungsi

Templat memungkinkan penulisan kode umum dalam C++. Melalui templat, kita dapat mendefinisikan fungsi atau kelas yang beroperasi pada parameter tipe generik, sehingga kompiler dapat menghasilkan kode aktual untuk tipe spesifik yang diminta.

Mendefinisikan Templat Fungsi

Untuk mendefinisikan templat fungsi, kita mengawali definisi fungsi dengan kata kunci template, diikuti dengan daftar parameter tipe yang diapit tanda kurung sudut <>. Umumnya, typename atau class digunakan untuk mendeklarasikan tipe generik.

C++
// T is the generic type parameter
template <typename T>
T add(T a, T b) {
    return a + b;
}

Panggilan Fungsi dan Pengurangan Argumen Templat

Saat kita memanggil fungsi tersebut, kita dapat secara eksplisit menentukan tipenya dalam tanda kurung sudut:

C++
int res1 = add<int>(5, 10);
double res2 = add<double>(3.14, 2.71);

Namun, kompiler C++ biasanya dapat menyimpulkan tipe secara otomatis dari parameter masukan yang diteruskan (Pengurangan Argumen Templat):

C++
int res1 = add(5, 10); // The compiler deduces that T is int

Cobalah sendiri

Latihan#cpp.m8.l1.e1
Upaya: 0Memuat…

Tentukan templat fungsi bernama myMax yang mengambil dua parameter tipe umum T dan mengembalikan yang lebih besar dari keduanya.

Memuat editor…
Tunjukkan petunjuk

Mulailah dengan menulis `template <typename T>` diikuti dengan tanda tangan `T myMax(T a, T b)`.

Solusi tersedia setelah 3 upaya

Latihan#cpp.m8.l1.e2
Upaya: 0Memuat…

Tulis templat fungsi bernama printPair yang mengambil dua parameter tipe generik berbeda T1 dan T2 dan mencetak dua argumen yang dipisahkan oleh spasi menggunakan std::cout.

Memuat editor…
Tunjukkan petunjuk

Deklarasi template harus menentukan dua parameter: `template <typename T1, typename T2>`.

Solusi tersedia setelah 3 upaya