Fungsi Overloading di C ++: Semua yang Perlu Anda Ketahui



Artikel ini akan memberi Anda pengetahuan terperinci dan komprehensif tentang Function Overloading di C ++ dengan banyak Contoh untuk dipahami.

C ++ adalah salah satu bahasa pemrograman yang sangat fleksibel dan juga mencakup beberapa fitur pemrograman berorientasi objek. Overloading adalah fitur lain dari bahasa pemrograman ini.Petunjuk berikut akan dibahas dalam artikel 'Kelebihan Fungsi di C ++' ini-

C ++ Overloading

Saat kita membuat dua atau lebih anggota kelas yang memiliki nama yang sama tetapi berbeda dalam jumlah atau jenis parameter, ini dikenal sebagai overloading C ++. Di C ++, kita bisa membebani:





  • metode,
  • konstruktor, dan
  • properti yang diindeks

Jenis overloading di C ++

types-of-overloading-in-c++

java adalah-hubungan

Apa itu function overloading di C ++?

Fungsi Overloading dalam C ++ dapat didefinisikan sebagai proses yang memiliki dua atau lebih fungsi anggota kelas dengan nama yang sama, tetapi berbeda dalam parameter. Dalam overloading fungsi, fungsi dapat didefinisikan ulang baik dengan menggunakan tipe argumen berbeda atau sejumlah argumen berbeda sesuai dengan kebutuhan. Hanya melalui perbedaan ini compiler dapat membedakan antara dua fungsi yang kelebihan beban.



Salah satu keuntungan utama dari Function overloading adalah meningkatkan keterbacaan program karena kita tidak perlu menggunakan nama yang berbeda untuk tindakan yang sama berulang kali.

Dengan mengubah Jumlah Argumen

Dengan cara kelebihan beban fungsi ini, kami mendefinisikan dua fungsi dengan nama yang sama tetapi jumlah parameter yang berbeda dari jenis yang sama. Misalnya, dalam program yang disebutkan di bawah ini, kami telah membuat dua fungsi add () untuk mengembalikan jumlah dua dan tiga bilangan bulat.

// definisi fungsi pertama int add (int a, int b) {cout<< a+b } // second overloaded function definition int add(int a, int b, int c) { cout << a+b+c }

Di sini fungsi add () dikatakan kelebihan beban, karena memiliki dua definisi, yang satu menerima dua argumen dan yang lainnya menerima tiga argumen. Fungsi add () mana yang akan dipanggil, bergantung pada jumlah argumen.



int main () {add (10, 20) // add () dengan 2 parameter akan dipanggil add (10, 20, 30) // sum () dengan 3 parameter akan dipanggil}
#include menggunakan namespace std int add (int a, int b) {cout<< a+b <

Dalam contoh di atas, kita membebani fungsi add () dengan mengubah jumlah argumennya. Pertama, kita mendefinisikan fungsi add () dengan dua parameter, lalu kita overload dengan mendefinisikan lagi fungsi add () tetapi kali ini dengan tiga parameter.

Dengan memiliki berbagai jenis Argumen

Dalam metode ini, kami mendefinisikan dua atau lebih fungsi dengan nama yang sama dan jumlah parameter yang sama, tetapi tipe data yang digunakan untuk parameter ini berbeda. Misalnya dalam program ini, kita memiliki tiga fungsi add (), yang pertama mendapat dua argumen integer, yang kedua mendapat dua argumen float dan yang ketiga mendapat dua argumen ganda.

#include using namespace std int add (int x, int y) // definisi pertama {cout<< x+y << endl return 0 } float add(float a, float b) { cout << a+b << endl return 0 } double add(double x, double y) { cout << x+y << endl return 0 } int main() { add(20, 40) add(23.45f, 34.5f) add(40.24, 20.433) }

Dalam contoh di atas, kami mendefinisikan fungsi add () tiga kali. Pertama menggunakan bilangan bulat sebagai parameter, kedua menggunakan float sebagai parameter dan ketiga menggunakan double sebagai parameter.
Jadi kita mengganti fungsi add () dua kali.

Keuntungan dari function Overloading di C ++

  • Kami menggunakan fungsi overloading untuk menghemat ruang memori, konsistensi, dan keterbacaan program kami.

  • Dengan konsep use function overloading, kita dapat mengembangkan lebih dari satu fungsi dengan nama yang sama

  • Fungsi overloading menunjukkan perilaku polimorfisme yang memungkinkan kita mendapatkan perilaku yang berbeda, walaupun akan ada beberapa link yang menggunakan nama fungsi yang sama.

  • Fungsi overloading mempercepat eksekusi program.

    cara menginisialisasi objek dengan python
  • Fungsi overloading digunakan untuk penggunaan kembali kode dan juga untuk menghemat memori.

  • Ini membantu aplikasi untuk memuat metode kelas berdasarkan jenis parameter.

  • Pemeliharaan kode itu mudah.

Kekurangan fungsi Overloading di C ++

  • Deklarasi fungsi yang berbeda hanya dengan jenis kembaliannya tidak dapat dibebani dengan proses kelebihan beban fungsi.
  • Deklarasi fungsi anggota dengan parameter yang sama atau tipe nama yang sama tidak dapat diisi berlebihan jika salah satu dari mereka dideklarasikan sebagai fungsi anggota statis.
  • kelas XYZ {static void func () void func () // error}

Fungsi Overloading dan Ambiguitas

Jika kompilator tidak dapat memutuskan fungsi mana yang harus dipanggil pertama kali di antara fungsi yang kelebihan beban, situasi ini dikenal sebagai ambiguitas kelebihan beban fungsi. Kompilator tidak menjalankan program jika menunjukkan kesalahan ambiguitas. Penyebab ambiguitas Function Overloading:

  • Ketik Konversi.
  • Fungsi dengan argumen default.
  • Fungsi dengan referensi lewat

Jenis Konversi:

#include menggunakan namespace std void function (float) void function (int) void function (float x) {std :: cout<< 'Value of x is : ' <

Contoh di atas melontarkan kesalahan - 'panggilan 'fungsi (ganda)' yang kelebihan beban adalah ambigu'. Fungsi (3.4) akan memanggil fungsi pertama. Fungsi (34) memanggil fungsi kedua sesuai dengan prediksi kita. Tetapi bukan ini yang terjadi karena di C ++ semua konstanta floating-point diperlakukan sebagai double, bukan sebagai float. Jika kita mengganti variabel float menjadi variabel ganda, program akan bekerja dengan baik. Oleh karena itu kami menyebutnya kesalahan konversi tipe dari float menjadi double.

cara membuat file di java

Fungsi dengan Argumen Default:

#include menggunakan namespace std void function (int) void function (int, int) void function (int x) {std :: cout<< 'Value of x is : ' <

Contoh di atas memberikan error yang mengatakan 'call of overloaded‘ fun (int) ’is ambiguous', ini karena function (int y, int z = 12) dapat dipanggil dengan dua cara:

  1. Dengan memanggil fungsi dengan satu argumen (dan secara otomatis akan mengambil nilai z = 12)
  2. Dengan memanggil fungsi dengan dua argumen.

Ketika kita memanggil function: function (12) kita mengisi penuh kondisi dari kedua function (int) dan function (int, int) sehingga compiler menjadi ambiguitas menunjukkan kesalahan.

Fungsi dengan referensi lewat

#include menggunakan namespace std void function (int) void function (int &) void function (int a) {std :: cout<< 'Value of a is : ' < 

Program di atas memberikan error yang mengatakan 'call of overloaded 'fun (int &)' is ambiguous'. Seperti yang kita lihat, fungsi pertama mengambil satu argumen integer dan fungsi kedua menggunakan parameter referensi sebagai argumen. Dalam hal ini, kompilator tidak dapat memahami fungsi mana yang dibutuhkan oleh pengguna karena tidak ada perbedaan sintaksis antara fun (int) dan fun (int &) sehingga ia merekam kesalahan ambiguitas.

Dengan ini, kita mengakhiri Fungsi Overloading ini di C ++. Jika Anda ingin mempelajari lebih lanjut, lihat oleh Edureka, perusahaan pembelajaran online terpercaya. Kursus pelatihan dan sertifikasi Java J2EE dan SOA Edureka dirancang untuk melatih Anda baik konsep inti dan lanjutan Java bersama dengan berbagai kerangka kerja Java seperti Hibernate & Spring.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar blog ini dan kami akan menghubungi Anda kembali secepatnya.