Pengertian Dan Fungsi Function Overloading Pada C++

fungsi overloading

Pengertian Function overloading
Function overloading adalah salah satu fitur C/C++ yang memungkinkan kita untuk mendirikan dua atau lebih function dengan identitas yang sama selama mereka memiliki keunikan pada function parameter.

Pada function kita dimungkinkan untuk mendirikan function lebih dari satu dengan identitas yang sama, selama masing-masing function tersebut memiliki perbedaan pada function parameter. Hal tersebut disebut sebagai fitur Overloading.

Fungsi dari Function Overloading
Overloading berfungsi untuk membuat fleksibilitas saat penggunaan function. ketika kita memberikan argument, kita harus mengikuti aturan yang telah ditetapkan oleh function parameter ( kita harus memberikan argument dengan menyesuaikan tipe data dan urutan dari function parameter ).

function yang memiliki fitur overloading, memberikan kemudahan dengan kemungkinkan untuk memberikan argument secara fleksibel sesuai keadaan dan kebutuhkan.

Contoh Program:

#include <stdio.h>
#include <iostream>
using namespace std;
void Tidak_Berhenti();
main()
{
Tidak_Berhenti();
}
void Tidak_Berhenti()
{
cout<<"CTRL-Break Untuk Berhenti.\n";
Tidak_Berhenti();
}

Pada contoh di atas kita diperlihatkan bagaimana dimudahkan kita dalam menggunakan function kustom Tidak_Berhenti (). Pada contoh di atas kita hanya memanggil satu identitas dari function, dengan otomatis CPU akan mengerti function mana yang tepat untuk mendapatkan argument tersebut.

Hal ini sangat berguna untuk membuat sebuah function yang dapat berbuat banyak hal, dengan argument yang fleksibel.

Keunikan dari function parameter bukan hanya pada tipe data-nya saja yang digunakan pada suatu function parameter. Melainkan kita juga bisa mendirikan berbagai macam function dengan jumlah parameter yang berbeda-beda, dan kita juga bisa membuat function parameter mereka benar-benar berbeda satu sama lain.

Proses Pencocokan oleh CPU
Pembuatan function overloading wajib untuk membuat function tersebut benar-benar berbeda dalam segi function parameter. Jika diidentifikasi memiliki kesamaan, maka kompiler akan mengeluh mengenai “ambiguating”.

Kadang kompiler juga akan mengeluh saat dimana memang tidak ditemukan kecocokan function dengan argument pada pemanggilan function.

Saat program kita mencoba menggunakan function, apa yang akan dilakukan CPU adalah mencari function dengan identitas tersebut dan memeriksa kecocokan argument yang diberikan dengan function parameter.

Proses pencocokan yang dilakukan CPU terdapat 4 tahap, yaitu :
Mencari function dengan function parameter yang benar-benar paling cocok dengan argument pada pemanggilan function.

Contoh Program:

#include <iostream>
using namespace std;
void buat(int a);
void buat(const char *a);
int main(){
    buat(4);
    return 0;
}
void buat(int b){
    cout<<"int b = "<<b<<endl;
}
void buat(const char *b){
    cout<<"char *b = "<<b<<endl;
}

Pada contoh di atas akan menampilkan hasil program yang menampilkan keluaran int b 4, karena CPU menemukan function yang paling tepat, yaitu void buat(int b) untuk pemanggilan function kustom buat(4).

Jika tidak ditemukan kecocokan maka akan mencari menggunakan metode Promotion. Dalam C/C++ terdapat istilah promotion untuk melakukan konversi dari tipe tertentu ke tipe lain, konversi tersebut sudah di standarkan oleh C/C++ sendiri. Seperti unsigned short di promosikan menjadi integer, float menjadi double, double menjadi integer, enum menjadi integer dan char ke int.

Jika masih belum ditemukan maka akan mencari menggunakan metode Standard Conversion, seperti pointer akan cocok dengan void pointer, semua numerik akan cocok dengan tipe numerik satu sama lain, emum dengan numerik dan 0 dengan pointer atau type numerik.

dan tahap terakhir menggunakan user-defined conversion.
Jika semua pencocokan itu gagal maka kompilator akan mengeluh mengenai “function tidak ditemukan”.

0 Response to "Pengertian Dan Fungsi Function Overloading Pada C++"

Post a Comment

Dilarang Berkomentar Menggunakan Kata-Kata Kasar, Link Aktif, Pornografi, dan Sejenisnya!!!