Skip to main content

Apa itu fungsi berlebihan?

Overloading fungsi adalah fitur dari banyak bahasa pemrograman di mana banyak metode dapat dibuat dengan nama yang sama tetapi dengan parameter input yang berbeda atau tipe pengembalian.Ini adalah fitur umum dalam pemrograman berorientasi objek;Konstruktor khususnya mungkin memiliki beberapa varian kelebihan beban yang berbeda.Pada dasarnya, fungsi berlebihan fungsi bermanfaat ketika dua fungsi melakukan hal yang sangat mirip dan dapat mengambil beberapa jenis input untuk melakukannya.Konstruktor dapat kelebihan beban dengan mudah karena mereka tidak memiliki tipe pengembalian eksplisit yang ditentukan, jadi cukup mengubah parameter input dari konstruktor adalah kelebihan beban yang valid.

Cara pertama di mana fungsi dapat kelebihan beban adalah dengan mengubah parameter inputnya.Misalnya, seseorang dapat mempertimbangkan fungsi yang disebut add yang mengambil sebagai inputnya dua bilangan bulat.Tujuan fungsi ini cukup jelas;Ini dimaksudkan untuk menemukan jumlah dari dua bilangan bulat.

Jika seseorang ingin menemukan jumlah dua pelampung, atau nomor desimal, fungsi ini tidak akan berlaku.Jadi, fungsi kelebihan beban kedua akan diperlukan, didefinisikan sebagai fungsi yang disebut add yang mengambil sebagai inputnya dua float.Fungsi pada dasarnya melakukan hal yang sama, tetapi fungsi berlebihan fungsi diperlukan karena inputnya berbeda secara signifikan.

Cara kedua di mana fungsi dapat kelebihan beban adalah dengan mengubah parameter inputnya dan tipe pengembaliannya.Menggunakan contoh sebelumnya, orang dapat mempertimbangkan apakah kedua fungsi ADD yang kelebihan beban memiliki tipe pengembalian void;Artinya, mereka tidak mengembalikan apa pun.Ini masih akan menjadi kelebihan fungsi yang valid, tetapi jenis pengembalian dari kedua metode tersebut juga dapat diubah.Dalam instance overloading lain yang valid, fungsi add yang mengambil dua bilangan bulat dapat mengembalikan jumlah bilangan bulat itu, dan fungsi tambah yang mengambil dua angka desimal dapat mengembalikan jumlah bilangan desimal itu.

Cukup mengubah jenis fungsi pengembalian, namun, tidak dianggap kelebihan fungsi yang valid.Mengubah hanya tipe pengembalian fungsi yang menghasilkan ambiguitas, karena tidak jelas dari tanda tangan metode yang diinginkan tipe pengembalian.Parameter juga dapat didefinisikan secara ambigu, sehingga sangat penting untuk fungsi kelebihan beban yang akan dipanggil dengan benar.Misalnya, jika seseorang memiliki fungsi kelebihan beban yang memiliki bilangan bulat sebagai parameter inputnya, dan yang lain yang memiliki angka desimal sebagai parameter, akan sangat mudah bagi seseorang untuk secara tidak sengaja memanggil fungsi bilangan desimal alih -alih fungsi bilangan bulat seluruh angka, atau sebaliknya, karena mereka memiliki nama yang sama.Parameter yang ambigu seperti ini harus dihindari jika memungkinkan, dan jika tidak bisa, sangat hati -hati harus diambil untuk memastikan bahwa fungsi kelebihan beban yang tepat dipanggil pada waktu yang tepat.

Fungsi berlebihan berguna untuk membuat fungsi terkait dengan beragam jenis input yang bervariasi, dan memberi kode banyak fleksibilitas.Salah satu pertimbangan terakhir pada fungsi kelebihan beban adalah bahwa komentar yang memadai sangat penting.Meskipun mungkin jelas dengan parameter input yang berbeda apa versi fungsi kelebihan beban yang tepat untuk situasi tertentu, mungkin tidak selalu jelas apa yang dilakukan fungsi secara berbeda dari mitra yang kelebihan beban lainnya.