Operator overloading adalahfitur bahasapemrograman komputeryang memungkinkan programmer untuk menimpa operator default.Ketika fungsi operator kelebihan beban, itu dapat dideklarasikan dengan argumen khusus yang merupakan tipe data yang berbeda dari apa yang mampu ditangani oleh operator secara default.Parameter baru mungkin tipe primitif atau ditentukan pengguna.Di dalam tubuh fungsi utama, seorang programmer dapat memanipulasi nilai parameter sesuai keinginan.Dengan menggunakan kelebihan operator, seorang programmer dapat membuat pintasan intuitif untuk memanipulasi tipe data yang ditentukan pengguna atau mengubah cara penanganan tipe data default.
C++ memungkinkan beberapa operatornya kelebihan beban.
Saat tipe data yang ditentukan pengguna dibuat, tidak ada cara untuk melakukan tugas operasional sederhana, seperti menambahkan dua di antaranya bersama-sama atau menambah data internal dengan menggunakan operator kenaikan unary dengan tipe data.Operator, termasuk simbol tambahan, dapat ditimpa sehingga jika digunakan sebagai operator biner antara dua tipe data khusus, mereka mengembalikan hasil yang ditentukan pengguna.Dengan cara yang sama, operator unary, seperti operator penambahan, mungkin diganti untuk meningkatkan nilai internal dalam tipe yang ditentukan pengguna.
Setelah operator kelebihan beban,kompilerharus membuat keputusan tentang apa yang harus dilakukan ketika bertemu dengan operator kelebihan beban.Kompiler memutuskan tindakan yang tepat untuk diambil berdasarkan tipe data apa yang digunakan sebagai operan, atau bersama dengan, operator.Jika operan, yang merupakan nilai parameter untuk fungsi operator, adalah tipe data yang ditentukan pengguna, kompiler akan memilih fungsi kelebihan beban yang memiliki parameter yang cocok dengan operan yang digunakan.
Bahasa komputer bervariasi dalam cara mereka mengizinkan jenis polimorfisme ad-hoc ini.Bahasa yang berbeda memungkinkan pembuatan operator kustom baru, kelebihan muatan semua atau sebagian operatornya, atau mungkin tidak mengizinkan operator kelebihan muatan sama sekali.C++, C#, PHP, danPerlsemuanya memungkinkan beberapa operatornya kelebihan beban.Kelebihan operator tidak diperbolehkan di C, Java, dan Javascript.
Overloading operator dan overloadingfungsisecara umum telah menjadi bahan perdebatan.Beberapa mengklaim bahwa memberikan kebebasan kepada pemrogram untuk mengubah cara perilaku operator dapat menimbulkan potensi untuk membuat kesalahan yang tidak disengaja oleh pemrogram lain yang menggunakan kode yang disesuaikan.Sudut pandang yang berlawanan mengusulkan bahwa mengizinkan kelebihan beban operator memberi pemrogram kemampuan untuk membuat kode yang intuitif dan ringkas yang akan lebih mudah dipahami, lebih murah untuk diproduksi, dan mengurangi kesalahan.