Bagaimana Menerapkan Operator Overloading di c ++?



Pada artikel ini kita akan melihat konsep berorientasi objek lain yang memudahkan penanganan operator. Kami akan mempelajari Operator Overloading di C ++.

Pada artikel ini kita akan mengeksplorasi konsep berorientasi objek lain yang membuat penanganan operator menjadi mudah. Artinya kita akan membahas detail Operator Overloading di C ++ . Petunjuk berikut akan dibahas dalam artikel ini,

Jadi, mari kita mulai dengan artikel tentang Operator Overloading di C ++.





Overloading di C ++

Jika kita membuat dua atau lebih anggota dari kelas yang sama yang memiliki nama yang sama tetapi berbeda dalam jumlah atau jenis parameter, itu disebut overloading C ++.



Di C ++, kita bisa membebani:

  • metode
  • konstruktor
  • properti yang diindeks

Itu karena anggota ini hanya memiliki parameter.

Lanjutkan dengan artikel ini tentang Operator Overloading di C ++.



Jenis overloading di C ++

  • Fungsi kelebihan beban
  • Operator kelebihan beban

Overloading - Operator Overloading Dalam C ++ - Edureka

Lanjutkan dengan artikel ini tentang Operator Overloading di C ++.

Mengapa operator overloading digunakan?

Program C ++ dapat ditulis tanpa sepengetahuan operator yang kelebihan beban. Selain itu, operasi operator sangat digunakan oleh pemrogram untuk membuat program menjadi intuitif. Sebagai contoh,

Kami dapat mengganti kode seperti:

kalkulasi = tambah (bagi (a, b), kalikan (a, b))

Untuk persamaan

perhitungan = (a / b) + (a * b)

Overloading operator menyediakan cara yang sederhana dan mudah untuk pengembangan definisi baru bagi sebagian besar operator di C ++. Dengan pengetahuan yang memadai, kita hampir dapat membuat bahasa baru kita sendiri dengan menggunakan secara kreatif fungsi dan teknik operator overloading. Kita dapat membebani semua operator di C ++ kecuali yang berikut ini:
● Operator lingkup (: :)
● Operator ukuran (Sizeof)
● pemilih anggota (.)
● pemilih penunjuk anggota (*)
● operator terner (? :)

Sintaks Operator Overloading

return_type class_name:: operator op (argument_list) {// function body}

Dimana tipe kembalian adalah tipe nilai yang dikembalikan oleh fungsi. class_name adalah nama kelas.

Lanjutkan dengan artikel ini tentang Operator Overloading di C ++.

adalah git dan github yang sama

Mengimplementasikan Operator Overloading di C ++

Fungsi operator harus non-statis (fungsi anggota) atau fungsi teman agar kelebihan beban. Fungsi kelebihan beban operator dapat diterapkan pada fungsi anggota jika operan kiri adalah objek dari kelas itu, tetapi jika operan Kiri berbeda, maka fungsi kelebihan beban Operator harus didefinisikan sebagai fungsi non-anggota.
Fungsi overloading operator dapat dijadikan fungsi teman jika memerlukan akses ke anggota kelas yang privat dan dilindungi. Misalnya, op operator adalah fungsi operator di mana op adalah operator yang kelebihan beban, dan operator adalah kata kunci. Overloading operator dapat dicapai dengan mengimplementasikan suatu fungsi yang dapat berupa fungsi anggota, fungsi non-anggota atau fungsi teman.

Apa perbedaan antara fungsi operator dan fungsi normal?

Fungsi operator sama dengan fungsi normal. Satu-satunya perbedaan adalah, nama fungsi operator selalu menggunakan kata kunci operator diikuti dengan simbol operator dan fungsi operator dipanggil saat operator terkait digunakan.

Lanjutkan dengan artikel ini tentang Operator Overloading di C ++.

Jenis pendekatan overloading

Overloading Operator dapat dilakukan dengan menggunakan tiga pendekatan yaitu

  • Overloading unary operator.
  • Membebani operator biner.
  • Membebani operator biner menggunakan fungsi teman.

Lanjutkan dengan artikel ini tentang Operator Overloading di C ++.

Overloading Unary Operator

Mari kita pertimbangkan operator '-' unary. Operator minus bila digunakan sebagai unary hanya membutuhkan satu operan. Kita tahu bahwa operator ini mengubah tanda operand saat diterapkan ke variabel data dasar. Mari kita lihat bagaimana membebani operator ini sehingga dapat diterapkan ke objek dengan cara yang sama seperti yang diterapkan pada variabel int atau float. Tanda minus unary, ketika diterapkan ke sebuah objek, harus mengurangi setiap item datanya.

Contoh:

#include using namespace std class Height {public: // Member Objects int feet, inch // Constructor to initialize the object's value Height (int f, int i) {feet = f inch = i} // Overloading (-) operator to melakukan decrement // operasi Operator void ketinggian objek- () {feet-- inch-- cout<< 'Feet & Inches after decrement: ' << feet << ' ' ' << inch <

Keluaran:

Penjelasan:
Pada contoh di atas, kita membebani operator unary ‘-’ untuk melakukan pengurangan pada dua variabel kelas Tinggi. Kami meneruskan dua parameter ke konstruktor dan menyimpan nilainya dalam variabel kaki dan inci. Kemudian kita mendefinisikan fungsi overloading operator (void operator- ()
) di mana kedua variabel dikurangi dengan satu posisi.
Ketika kita menulis -h1 itu memanggil fungsi overloading operator dan menurunkan nilai yang diteruskan ke konstruktor.

Lanjutkan dengan artikel ini tentang Operator Overloading di C ++.

Membebani Operator Biner

Ini adalah kelebihan beban operator yang beroperasi pada dua operan. Mari kita ambil contoh ketinggian kelas yang sama, tapi kali ini, tambahkan dua objek Tinggi h1 dan h2.

Contoh:

#include using namespace std class Height {public: int feet, inch Height () {feet = 0 inch = 0} Height (int f, int i) {feet = f inch = i} // Operator overloading (+) yang harus dilakukan penambahan // dua jarak objek menggunakan operator biner Operator ketinggian + (Tinggi & d2) // Panggil dengan referensi {// Membuat objek untuk dikembalikan Tinggi h3 // Lakukan penambahan kaki dan inci h3.feet = kaki + d2.feet h3. inch = inch + d2.inch // Kembalikan objek yang dihasilkan kembali h3}} int main () {Tinggi h1 (3, 7) Tinggi h2 (6, 1) Tinggi h3 // Gunakan operator kelebihan beban h3 = h1 + h2 cout<< 'Sum of Feet & Inches: ' << h3.feet << ''' << h3.inch << endl return 0 } 

Keluaran:

Penjelasan:
Operator ketinggian + (Tinggi & h2), di sini jenis_pengembalian fungsinya adalah kelas Tinggi sehingga mengembalikan objek h3 dari kelas Tinggi. Pada baris h3 = h1 + h2, h1 memanggil fungsi operator dari objek kelasnya dan mengambil h2 sebagai parameternya, kemudian kita terapkan h3.feet = feet + d2.feet dan h3.inch = inch + d2.inch yang menyimpan jumlah nilai variabel kaki dan inci dalam variabel yang terkait dengan objek h3.
Ketika pernyataan 'h3 = h1 + h2' memanggil fungsi operator yang kelebihan beban, objek h1 mengambil tanggung jawab untuk memanggil fungsi dan h2 memainkan peran argumen yang diteruskan ke fungsi tersebut. Pernyataan pemanggilan di atas sama dengan h3 = h1.operator + (h2) oleh karena itu anggota data h2 diakses secara langsung dan anggota data h2 (yang dilewatkan sebagai argumen) diakses menggunakan operator titik.

Aturan untuk Operator Overloading

  • Hanya operator yang ada yang dapat kelebihan beban dan operator baru tidak dapat kelebihan beban
  • Operator yang kelebihan beban harus berisi setidaknya satu operand dari tipe data yang ditentukan pengguna.
  • Kami tidak menggunakan fungsi teman untuk membebani operator tertentu. Namun, fungsi anggota dapat digunakan untuk membebani operator tersebut.
  • Ketika operator unary kelebihan beban melalui fungsi anggota mereka tidak mengambil argumen eksplisit, tetapi, jika mereka kelebihan beban oleh fungsi teman mereka mengambil satu argumen.
  • Ketika operator biner dibebani melalui fungsi anggota mereka mengambil satu argumen eksplisit, dan jika mereka dibebani melalui fungsi teman mereka mengambil dua argumen eksplisit.

Jadi kami telah sampai pada akhir artikel ini tentang 'Operator Overloading di C ++'. Jika Anda ingin mempelajari lebih lanjut, lihat Pelatihan Java oleh Edureka, perusahaan pembelajaran online tepercaya. Edureka's kursus dirancang untuk melatih Anda baik konsep inti dan lanjutan Java bersama dengan berbagai kerangka kerja Java seperti Hibernate & Spring.

cara menggunakan kekuatan di java

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