Pengertian Operator Overloading
Pada penjelasan sebelumnya telah dijelaskan mengenai function overloading dimana kita dimungkinkan melakukan penumpukan function. Pada bahasa pemrograman C++ juga dimungkinkan untuk melakukan overloading terhadap operator.
Fitur overloading pada bahasa pemrograman C++ memungkinkan kita untuk mendefinisikan ulang fungsi atau kegunaan dari sebuah operator.
Alasan melakukan Operator Overloading
Pada dasarnya operator yang tersedia pada bahasa pemrograman c++ memiliki kegunaan dan fungsi masing-masing, tapi terkadang para programmer membutuhkan hal lebih lagi dibandingkan yang sudah disediakan. Mereka kadang ingin menambahkan implementasi tambahan saat menggunakan operator dasar yang sudah disediakan.
Cara melakukan Operator Overloading
Operator overloading didirikan mirip seperti functon overloading, berbeda pada pemberian nama dimana akan diwali dengan keyword operator
dan diikuti dengan simbol dari operator yang dimaksud.
Contoh Penulisan:
myClass operator+(const myClass);
Contoh program:
#include<iostream> using namespace std; class pengurangan { private: int a; public: pengurangan(int p = 0) {a = p;} pengurangan operator + (pengurangan const &obj) { pengurangan hasil; hasil.a = this->a - obj.a; return hasil; } void print() { cout<<this->a<< endl; } }; int main(){ pengurangan a(9), b(5); pengurangan hasil = a + b; hasil.print(); }
Di atas adalah contoh dimana kita mencoba untuk mengubah fungsi dari operator penjumahan, mengubah cara kerja menjadi kebalikanya, yaitu menjadi operasi pengurangan dengan simbol penjumlahan.
Hal yang harus di ingat
Contoh di atas adalah praktek yang buruk dalam memanfaatkan fitur operator overloading pada C++, anggap saja di atas sebagai contoh dalam melakukan operator overloading.
Operator overloading memungkinkan anda mendefinisikan ulang bagaimana sebuah operator akan bekerja, maka dari itu sangat disarankan untuk mendefinisikan tidak jauh dari definisi asli.
Itu akan sangat membingungkan pengguna operator tersebut untuk kedepanya, seperti contoh di atas dimana operator dengan simbol penambahan berfungsi untuk melakukan pengurangan.
Jika memang tidak terpaksa, sangat disarankan untuk tidak mengubah secara total cara kerja dari suatu operator, mungkin anda bisa hanya untuk menambahkan fitur detail kecil yang tidak mempengaruhi cara kerja dan hasil operator secara signifikan pada hasil.
Operator yang dapat di overload
+ | – | * | / | % | ^ |
& | | | ~ | ! | , | = |
< | > | <= | >= | ++ | — |
<< | >> | == | != | && | || |
+= | -= | /= | %= | ^= | &= |
|= | += | <<= | =>> | [] | () |
-> | ->* | new | new[] | delete | delete[] |
Operator yang tidak dapat di overload
:: | * | . | ?: |
makasih yaa, sgt membantu sekali…