Operator Overloading di C++
Penjelasan
Operator overloading memungkinkan kamu mendefinisikan ulang perilaku operator standar (+, -, ==, <<, dst) supaya bisa dipakai langsung pada object dari class buatan sendiri — bukan cuma pada tipe primitif. Ini dilakukan dengan mendefinisikan method khusus bernama operatorX di dalam class, di mana X adalah simbol operatornya.
Contoh Konsep
#include <iostream>
class Titik {
public:
int x, y;
Titik(int x, int y) : x(x), y(y) {}
Titik operator+(const Titik &lain) { // overload operator +
return Titik(x + lain.x, y + lain.y);
}
};
int main() {
Titik a(1, 2);
Titik b(3, 4);
Titik hasil = a + b; // memanggil operator+ yang sudah di-overload
std::cout << hasil.x << ", " << hasil.y << std::endl; // 4, 6
return 0;
}
Praktikum
Buat class Uang dengan field int nominal (diisi lewat constructor). Overload operator+ supaya dua object Uang bisa dijumlahkan nominalnya, mengembalikan object Uang baru. Buat dua object Uang, jumlahkan dengan +, lalu tampilkan hasil nominalnya.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Pakai operator overloading secukupnya dan hanya kalau perilakunya memang INTUITIF (mis. + untuk menjumlahkan dua Uang) — meng-overload operator dengan makna yang membingungkan (mis. - untuk menggabungkan string) justru membuat kode lebih sulit dibaca, bukan lebih mudah.