rachmanez

Kamis, 09 Desember 2010

BP 2 (OPERATOR OVERLOADING)

Selain overload fungsi,konsep OOP juga memungkinkan untuk melakukan overload terhadap operator yang biasa dipakai didalam bahasa C++. Ada dua jenis operator yang bisa di-overload yaitu unary operator (operator dengan satu operan) dan binary operator (operator dengan dua operan). Operator yang di-overload tidak akan kehilangan/dihapus fungsi aslinya.sebagai contoh misalnya di-overload operator (+) untuk melakukan penjumlahan dua buah bilangan kompleks, maka operator plus masih bisa dipakai untuk melakukan operasi penjumlahan dua buah bilangan real.


Cara penulisan perintah overload operator adalah sebagai berikut:

Return_type class_name::operator op (arg_list)
{
Function_body //task defined
}

Catatan: op adalah simbol operator yang akan di-overload (+,-,*,/)

Pendefinisian nama metode yang sama dengan parameter yang berbeda (overloading) pada BP C++ dapat dimudahkan penulisannya pada kode program dengan menggunakan kata kunci templete, namun templete hanya berlaku untuk metode yang memiliki isi atau badan program yang sama persis, hanya berbeda tipe data parameter masukkannya.
Templete juga dapat di-overloading yaitu memungkinkan pemrogram membuat beberapa templete dengan menggunakan nama yang sama.

Contoh implementasi dalam C++

#include <iostream.h>
Class complex
{
float riil; float imajiner;
public:
complex()
{
riil=0;
imajiner=0;
};
complex(float real, float imaginer)
{
riil=real;
imajiner=imaginer;
};
void display(void)
{
cout<<”[“<<<”]+[“<<<”i]\n”;
};
complex operator +(complex c) //OPERATOR OVERLOADING
{
complex temp;
temp.riil = riil+c.riil;
temp.imajiner=imajiner+c.imajiner;
return(temp);
};
void operator –(void) //OPERATOR OVERLOADING
{
riil = -riil;
imajiner=-imajiner;
};
};
void main()
{
complex c1(2.5, 6.1);
complex c2(3.3, 4.5);
complex c3;
-c2;
c3=c1+c2;
cout<<”\nC1=”;
c1.display();
cout<<”\nC2=”;
c2.display();
cout<<”\nC3=”;
c3.display();
}

Tidak ada komentar:

Posting Komentar