C ++ Function Overloading (Dengan Contoh)

Dalam tutorial ini, kita akan belajar tentang fungsi overloading di C ++ dengan contoh.

Dalam C ++, dua fungsi dapat memiliki nama yang sama jika jumlah dan / atau tipe argumen yang diberikan berbeda.

Fungsi-fungsi ini memiliki nama yang sama tetapi argumen yang berbeda dikenal sebagai fungsi yang kelebihan beban. Sebagai contoh:

 // same name different arguments int test() ( ) int test(int a) ( ) float test(double a) ( ) int test(int a, double b) ( )

Di sini, keempat fungsi adalah fungsi yang kelebihan beban.

Perhatikan bahwa tipe kembalian dari semua 4 fungsi ini tidak sama. Fungsi yang kelebihan beban mungkin atau mungkin tidak memiliki tipe kembalian yang berbeda, tetapi mereka harus memiliki argumen yang berbeda. Sebagai contoh,

 // Error code int test(int a) ( ) double test(int b)( )

Di sini, kedua fungsi memiliki nama yang sama, tipe yang sama, dan jumlah argumen yang sama. Karenanya, compiler akan menampilkan error.

Fungsi Overloading menggunakan Berbagai Jenis Parameter

 // Program to compute absolute value // Works for both int and float #include using namespace std; // function with float type parameter float absolute(float var)( if (var < 0.0) var = -var; return var; ) // function with int type parameter int absolute(int var) ( if (var < 0) var = -var; return var; ) int main() ( // call function with int type parameter cout << "Absolute value of -5 = " << absolute(-5) << endl; // call function with float type parameter cout << "Absolute value of 5.5 = " << absolute(5.5f) << endl; return 0; )

Keluaran

 Nilai mutlak -5 = 5 Nilai mutlak 5,5 = 5,5
Bekerja kelebihan beban untuk fungsi absolute ()

Dalam program ini, kami membebani absolute()fungsi. Berdasarkan jenis parameter yang dilewatkan selama pemanggilan fungsi, fungsi yang sesuai dipanggil.

Fungsi Overloading menggunakan Berbagai Jumlah Parameter

 #include using namespace std; // function with 2 parameters void display(int var1, double var2) ( cout << "Integer number: " << var1; cout << " and double number: " << var2 << endl; ) // function with double type single parameter void display(double var) ( cout << "Double number: " << var << endl; ) // function with int type single parameter void display(int var) ( cout << "Integer number: " << var << endl; ) int main() ( int a = 5; double b = 5.5; // call function with int type parameter display(a); // call function with double type parameter display(b); // call function with 2 parameters display(a, b); return 0; )

Keluaran

 Nomor integer: 5 nomor float: 5.5 Nomor integer: 5 dan nomor ganda: 5.5

Di sini, display()fungsinya dipanggil tiga kali dengan argumen berbeda. Bergantung pada jumlah dan jenis argumen yang diteruskan, display()fungsi terkait dipanggil.

Bekerja kelebihan beban untuk fungsi display ()

Jenis kembalian dari semua fungsi ini sama tetapi tidak perlu kasus untuk kelebihan beban fungsi.

Catatan: Di C ++, banyak fungsi pustaka standar yang kelebihan beban. Sebagai contoh, sqrt()fungsi dapat mengambil double, float, int,dll sebagai parameter. Hal ini dimungkinkan karena sqrt()fungsi kelebihan beban di C ++.

Artikel yang menarik...