Karena – adalah operator biner (operator yang beroperasi pada dua operan), salah satu operan harus dilewatkan sebagai argumen untuk fungsi operator dan proses sisanya mirip dengan kelebihan beban operator unary.
Contoh: Overloading Operator Biner untuk Mengurangi Angka Kompleks
#include
using namespace std;
class Complex
{
private:
float real;
float imag;
public:
Complex(): real(0), imag(0){ }
void input()
{
cout << "Enter real and imaginary parts respectively: ";
cin >> real;
cin >> imag;
}
// Operator overloading
Complex operator - (Complex c2)
{
Complex temp;
temp.real = real - c2.real;
temp.imag = imag - c2.imag;
return temp;
}
void output()
{
if(imag < 0)
cout << "Output Complex number: "<< real << imag << "i";
else
cout << "Output Complex number: " << real << "+" << imag << "i";
}
};
int main()
{
Complex c1, c2, result;
cout<<"Enter first complex number:n";
c1.input();
cout<<"Enter second complex number:n";
c2.input();
// In case of operator overloading of binary operators in C++ programming,
// the object on right hand side of operator is always assumed as argument by compiler.
result = c1 - c2;
result.output();
return 0;
}
Dalam program ini, tiga objek bertipe Kompleks dibuat dan pengguna diminta untuk memasukkan bagian nyata dan imajiner untuk dua bilangan kompleks yang disimpan dalam objek c1
dan c2
.
Lalu pernyataan result = c1 -c 2
dieksekusi. Pernyataan ini memanggil fungsi operator Complex operator - (Complex c2)
.
Kapan result = c1 - c2
dieksekusi, c2
dilewatkan sebagai argumen ke fungsi operator.
Dalam hal operator kelebihan operator biner dalam pemrograman C ++, objek di sisi kanan operator selalu dianggap sebagai argumen oleh kompiler.
Kemudian, fungsi ini mengembalikan bilangan kompleks (objek) yang dihasilkan ke fungsi utama () yang ditampilkan pada layar.
Padahal, tutorial ini berisi kelebihan - operator, operator biner dalam pemrograman C ++ seperti: +, *, <, + = dll. Dapat kelebihan beban dengan cara yang sama.