Penjelasan Operator Overloading

Posted on   Oktober 10, 2019   |   Last Modified   Oktober 10, 2019
Operator overloading

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.

Baca :   Penjelasan dan Tabel Precedence of Operators

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

:: * . ?:


Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *